繁体   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