1

我有一个包含各种项目的 TreeView。项目的样式使得 IsSelected 属性绑定到我的 VM 到布尔 IsSelected。

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

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

谢谢

4

2 回答 2

2

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

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

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

于 2011-02-25T19:23:06.590 回答
2

其原因是冒泡事件。

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

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

你只需要设置e.Handled = true

奥菲尔

于 2011-10-17T12:19:25.267 回答