在Observable Collection中的RemoveAt,也修改了ListView中的IsSelected属性

时间:2009-02-22 05:45:31

标签: wpf

我会尽可能明确地尝试。

我有两个UI对象,这是一个TabControl和一个ListView, 两者都被绑定了两个不同的相同对象列表, 两者都将IsSelected属性绑定到Item.IsSelected作为视图模型命令,

这非常有效,(我可以通过在其中一个来源中选择,然后更新其他选项来证明它)

我的问题是从两个列表中的任何一个中删除一个项目。 Remove方法似乎将IsSelected调用为FALSE,因此Item在其他列表中仍然是UNSELECTED,它仍然出现。

我做错了什么?

任何帮助都会非常感激。

事先提前

2 个答案:

答案 0 :(得分:1)

发生的事情是,每当您从可观察集合中添加/删除项目时,它都会刷新列表。它这样做,以便任何过滤器/视图/等。将被刷新/重新过滤。唉,它确实 - 正如您所发现的那样 - 在刷新时不会在任何绑定控件中维护所选项。

答案 1 :(得分:0)

这可能是控件中的错误或疏忽。您可以做的是编写自己的Remove方法,保存选择,删除项目,然后重新选择。