无法删除DataGrid

时间:2017-12-28 17:13:43

标签: c# wpf xaml

我有一个绑定联系人列表的DataGrid:

<DataGrid ItemsSource="{Binding Contacts"
          SelectionMode="Single"
          SelectionChanged="LoadContactInfo" 
          x:Name="ContactsGrid"
          ...

用户可以选择一个项目(联系人),方法LoadContactInfo将会触发,此方法会加载SelectedItem的信息。

现在每个项目都有一个复选框,当用户按下它时,该联系人将从Contacts集合中删除。一切正常,但存在问题,特别是DataGrid SelectedItem将切换到集合中可用的下一个联系人。

我尝试修复此情况,删除SelectedItem事件中的LoadContactInfo

Contacts.SelectedItem = null;

但我也有同样的问题,我该如何解决这个问题呢?感谢。

3 个答案:

答案 0 :(得分:0)

只能分配空值,无法删除DataGrid行。

但您可以通过Rows属性执行此操作并调用Remove方法。

var selectedItem = ContactsGrid.SelectedItem;
ContactsGrid.Rows.Remove(selectedItem);

很酷的检查之前所选项目是否为空。

答案 1 :(得分:0)

如果您使用ItemsSource属性,最好从数据中删除项目。 联系人应该实现INotifyCollectionChanged或者是ObservableCollection。尝试将SelectedIndex设置为-1。

答案 2 :(得分:0)

简单的解决方案:

ContactsGrid.UnselectAll();