簡體   English   中英

我如何在datagrid wpf中刪除所選行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM