繁体   English   中英

无法删除DataGrid中的selecteditem

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM