Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf TreeViewItem被选中发射了两次_Wpf_Mvvm_Binding_Treeviewitem - Fatal编程技术网

Wpf TreeViewItem被选中发射了两次

Wpf TreeViewItem被选中发射了两次,wpf,mvvm,binding,treeviewitem,Wpf,Mvvm,Binding,Treeviewitem,我有一个树视图,里面有各种各样的东西。这些项的样式是这样的:IsSelected属性被绑定到my VM到bool IsSelected 每当我单击一个树状视图项时,这个VM属性都会被调用两次,首先调用值==false,然后调用值==true 我假设这是一种正常的行为,但我不确定为什么,因为我以相同的方式绑定了IsExpended属性,并且只调用了一次 谢谢我怀疑原因是当您选择一个项目时,首先取消选择旧项目,然后选择新项目。这将导致第一次调用false,第二次调用true 也许在调试时,检查视图模

我有一个树视图,里面有各种各样的东西。这些项的样式是这样的:IsSelected属性被绑定到my VM到bool IsSelected

每当我单击一个树状视图项时,这个VM属性都会被调用两次,首先调用值==false,然后调用值==true

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


谢谢

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

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


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

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

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


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

原因是冒泡事件

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

您可以通过选择第三级项目对其进行验证

您只需设置
e.Handled=true


Ofir

原因是冒泡事件

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

您可以通过选择第三级项目对其进行验证

您只需设置
e.Handled=true

奥菲尔