如何在不更改选定项目的情况下在列表视图中插入元素

时间:2012-11-21 01:59:19

标签: c# wpf list listview

在WPF中,我在列表视图中选择了多个项目。在代码隐藏中,我使用ObservableCollection.SetItem()在索引2处插入了一个元素。我之前选择的多个项目将被取消选中。如何在列表视图中插入元素,同时不丢失我选择的多个项目? 下面的代码触发取消选择所选项目。

this.SetItem(index2, new student("name",age,"school"));

感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:0)

首先,SetItem()不插入项目,而是替换它。要插入项目,请使用Insert()

对于多选,您最好实现可绑定的多选ListViewListView的一个问题是SelectedItems不是DependencyProperty因此无法绑定,并且不是ViewModel或代码中最可靠的处理方式。

可以找到如何实现更好的ListView的一个很好的示例Here.有一个关于绑定ListViews的3部分系列,它可以提供一些有用的想法。< / p>

答案 1 :(得分:0)

为清单中的每个项目创建一个bool列表。

在插入新项目之前,请检查每个现有项目并查看它是否已被选中并将结果存储在bool列表中。

插入项目后,只需解析bool列表并重新设置之前选择的项目。