在 WPF 中,我在列表视图中选择多个项目。在代码隐藏中,我使用 ObservableCollection.SetItem() 在索引 2 处插入了一个元素。我之前选择的多个项目将被取消选择。如何在不丢失我选择的多个项目的情况下在列表视图中插入一个元素?下面的代码触发取消选择所选项目。
this.SetItem(index2, new student("name",age,"school"));
任何帮助表示赞赏。谢谢
一方面,SetItem()
不插入项目,而是替换它。要插入项目,请使用Insert()
.
至于多选,你最好实现一个可绑定的多选ListView
。一个问题ListView
是它SelectedItems
不是一个DependencyProperty
,所以它不能被绑定,也不是在 ViewModels 或代码中处理的最可靠的事情。
ListView
可以在此处找到如何实现更好的一个很好的示例。那里有一个关于绑定的 3 部分系列,ListViews
它也可以提供一些有用的想法。
为清单中的每个项目创建一个布尔列表。
在插入新项目之前,检查每个现有项目并查看它是否被选中并将结果存储在布尔列表中。
插入项目后,只需解析布尔列表并重新设置先前选择的项目。