TreeViewItem被选中两次

时间:2011-02-04 00:41:25

标签: wpf mvvm binding treeviewitem

我有一个包含各种项目的TreeView。对这些项进行样式设置,以便将IsSelected属性绑定到我的VM,并将其绑定到bool IsSelected。

每当我点击树视图项时,都会调用此VM属性两次,首先使用值== false然后使用值== true。

我认为这是一种正常的行为,但我不确定为什么,因为我以相同的方式绑定了IsExpended属性,并且只调用一次。

由于

2 个答案:

答案 0 :(得分:2)

我怀疑原因是当你选择一个项目时,首先取消选择旧项目,然后选择新项目。这导致第一次调用false,第二次调用true。

也许在调试时,检查视图模型上的DisplayName或类似属性,以查看每次修改哪些项目,看看是否确实如此。

同样,当您展开节点时,不需要折叠任何其他节点。因此,它只是扩展您尝试扩展的节点(对于IsExpanded传递true)。

答案 1 :(得分:2)

原因是冒泡事件。

当一个事件被提出时,它会“冒泡”直到它被处理。

您可以通过选择第三级项目来验证它。

您只需要设置e.Handled = true;

奥菲尔