在WPF中,我在列表视图中选择了多个项目。在代码隐藏中,我使用ObservableCollection.SetItem()在索引2处插入了一个元素。我之前选择的多个项目将被取消选中。如何在列表视图中插入元素,同时不丢失我选择的多个项目? 下面的代码触发取消选择所选项目。
this.SetItem(index2, new student("name",age,"school"));
感谢任何帮助。感谢
答案 0 :(得分:0)
首先,SetItem()
不插入项目,而是替换它。要插入项目,请使用Insert()
。
对于多选,您最好实现可绑定的多选ListView
。 ListView
的一个问题是SelectedItems
不是DependencyProperty
因此无法绑定,并且不是ViewModel或代码中最可靠的处理方式。
可以找到如何实现更好的ListView
的一个很好的示例Here.有一个关于绑定ListViews
的3部分系列,它可以提供一些有用的想法。< / p>
答案 1 :(得分:0)
为清单中的每个项目创建一个bool列表。
在插入新项目之前,请检查每个现有项目并查看它是否已被选中并将结果存储在bool列表中。
插入项目后,只需解析bool列表并重新设置之前选择的项目。