我有一个绑定联系人列表的DataGrid:
<DataGrid ItemsSource="{Binding Contacts"
SelectionMode="Single"
SelectionChanged="LoadContactInfo"
x:Name="ContactsGrid"
...
用户可以选择一个项目(联系人),方法LoadContactInfo
将会触发,此方法会加载SelectedItem
的信息。
现在每个项目都有一个复选框,当用户按下它时,该联系人将从Contacts
集合中删除。一切正常,但存在问题,特别是DataGrid SelectedItem
将切换到集合中可用的下一个联系人。
我尝试修复此情况,删除SelectedItem
事件中的LoadContactInfo
:
Contacts.SelectedItem = null;
但我也有同样的问题,我该如何解决这个问题呢?感谢。
答案 0 :(得分:0)
只能分配空值,无法删除DataGrid行。
但您可以通过Rows属性执行此操作并调用Remove方法。
var selectedItem = ContactsGrid.SelectedItem;
ContactsGrid.Rows.Remove(selectedItem);
很酷的检查之前所选项目是否为空。
答案 1 :(得分:0)
如果您使用ItemsSource属性,最好从数据中删除项目。 联系人应该实现INotifyCollectionChanged或者是ObservableCollection。尝试将SelectedIndex设置为-1。
答案 2 :(得分:0)
简单的解决方案:
ContactsGrid.UnselectAll();