使用ItemsSource时,操作无效

时间:2018-04-12 05:43:19

标签: c# wpf

我有一个dataGrid。

我想通过单击UI(WPF)中的按钮从dataGrid中删除其中一行。

以下是从dataGrid中删除行的代码片段,但是我正在观察Exception"当ItemsSource正在使用时,Operation无效。使用ItemsControl.ItemsSource访问和修改元素"。

请帮助解决这个问题。

   private void btnDelete_Click(object sender, RoutedEventArgs e)
    {

        var selectedItem = dataGrid.SelectedItem;
        if (selectedItem != null)
        {
            dataGrid.Items.Remove(selectedItem);             
        }

    }

1 个答案:

答案 0 :(得分:0)

您通过为DataTable属性分配dataGrid.ItemsSource来显示数据。这意味着您需要通过直接修改DataTable来添加/删除项目。

private DataTable _dataTable;

private void btnDelete_Click(object sender, RoutedEventArgs e)
{
    var selectedItem = dataGrid.SelectedItem as DataRowView;
    if (selectedItem != null)
    {
        _dataTable.Rows.Remove(selectedItem.Row); 
        _dataTable.AcceptChanges();
    }
}