2011-03-23 33 views
0

我有一個WPF DataGrid,其中一列上有按鈕。 當我按一下按鈕我有這個功能叫做:WPF DataGrid按鈕在新行中單擊獲取當前項目中的錯誤行

MyClass mySC = (MyClass)(CollectionViewSource.GetDefaultView(grdMyClass.DataContext).CurrentItem); 

此代碼的工作完美的,但是當我點擊按鈕的新行(最後上的網格),我得到了線的MSSC在它之前,而不是空,或與最後一個新行相關的內容。

如何檢查按鈕是否在新行中被點擊?

回答

1

如果你的意圖是點擊一個按鈕,應該做綁定到該行,然後只得到從按鈕的數據上下文數據的數據進行處理。如果爲空,則用戶單擊空行。

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    MyClass data = (sender as FrameworkElement).DataContext as MyClass; 
} 
+0

謝謝,它的工作原理。 – Dani 2011-03-25 11:30:12

0

我剛剛得到了完全相同的問題,並創建了我自己的解決方案。

我有一個DataSource,其ItemsSource綁定到我的ViewModel中的一個列表,而SelectedIndex綁定到視圖模型中的一個int,以便能夠在我們選擇某個東西時與列表一起玩(例如模擬一個事件作爲「OnSelectionChanged」)

因此,解決辦法很簡單,在這裏:

//App selected on the list 
private int _selectedApp; 

public int SelectedApp 
{ 
    get { return _selectedApp; } 
    set 
    { 
     if (value == _listApps.Count) _selectedApp = -1; 
     else _selectedApp = value; 
     OnPropertyChanged("SelectedApp"); 
    } 
} 

我只是檢查索引不超出範圍:如果是這樣,我把它設置爲-1,所以我應用程序認爲沒有實際選擇。

希望這可以幫助,請隨時提出更多的:)

+0

謝謝,我會檢查這是否有效,@Wallstreet程序員解決方案爲我工作。 – Dani 2011-03-25 11:31:16

相關問題