[英]How I can Delete Selected Row in datagrid wpf?
我正在使用WPF datagrid我需要刪除選中的Row,我的代碼是
private void dataGridView1_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
this.dataGridView1.Items.Remove(this.dataGridView1.SelectedItem);
}
}
但是,當我使用此代碼時顯示錯誤
使用ItemsSource時,操作無效。 使用ItemsControl.ItemsSource訪問和修改元素
我如何刪除所選行?
您永遠不必從WPF網格中刪除該行。 你要做的是:
1)使用ObservableCollection
屬性定義一個類型,該屬性包含在網格上顯示值的對象列表。
2)將該屬性綁定到您的網格控件。
3)現在如果你從綁定集合中添加/刪除對象,相應的行將分別從控件的ui添加/刪除。
我認為您正在使用itemSource來填充dataGridview。 從數據源中刪除該項,然后刷新綁定。
或者讓您的數據源類繼承INotifyPropertyChanged
並引發PropertyChanged
事件,並在列表框XAML上將UpdateSourceTrigger設置為PropertyChanged
事件,如下所示:
ItemsSource="{Binding MyListItems, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}
猜猜您的DataGrid綁定到ItemsSource(例如ObservableCollection)。 在這種情況下,不允許從View中操作ItemsSource,而是必須在ViewModel中刪除它(這是存儲綁定對象的位置)。
正如在綁定到DataSource的UI控件的錯誤描述中明確提到的那樣,您應該操縱數據源本身而不是UI控件(在本例中是數據網格)。
UI控件只是一種在用戶界面中顯示數據的方式,用於顯示已編輯的或新的或修改的數據(例如,少一行),您只需對已分配給DataGrid的ItemSource屬性的基礎數據源執行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.