
[英]ObservableCollection RemoveAt can't remove selecteditem in datagrid
[英]Cannot remove selecteditem in DataGrid
我有一个绑定联系人列表的DataGrid:
<DataGrid ItemsSource="{Binding Contacts"
SelectionMode="Single"
SelectionChanged="LoadContactInfo"
x:Name="ContactsGrid"
...
用户可以选择一个Item(联系人),然后将触发LoadContactInfo
方法,该方法将加载SelectedItem
的信息。
现在,每个项目都有一个复选框,当用户按下它时,该联系人将从“ Contacts
集合中删除。 一切正常,但是有一个问题,特别是DataGrid SelectedItem
将切换到集合中可用的下一个联系人。
我试图解决这种情况,删除了LoadContactInfo
事件中的SelectedItem
:
Contacts.SelectedItem = null;
但我也有同样的问题,该如何解决? 谢谢。
您不能仅分配空值就删除DataGrid行。
但是您可以通过Rows属性执行此操作,然后调用Remove方法。
var selectedItem = ContactsGrid.SelectedItem;
ContactsGrid.Rows.Remove(selectedItem);
很酷的检查所选项目之前是否不为null。
如果使用ItemsSource属性,最好从数据中删除项目。 联系人应实现INotifyCollectionChanged或为ObservableCollection。 尝试将SelectedIndex设置为-1。
简单的解决方案:
ContactsGrid.UnselectAll();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.