当我左键单击TreeView
时,它会自动选择鼠标下的项目。如何右键单击这样做,右键单击时,它还会选择鼠标下的项目?
我想这样做,因为当我右键单击时,我会根据TreeView
的{{1}}在SelectedItem
更改时设置e.NewValue
的上下文菜单。但右键单击本身不会更改TreeView_SelectedItemChanged
,这就是出现错误菜单的原因。或者我必须先左键单击我想要的项目,然后右键单击。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
覆盖右键单击事件。 Here is an example to do it
答案 1 :(得分:1)
关于使用鼠标按下事件的正确回答是正确的,但您确定需要Visual Tree Helper和Hit Testing吗?你可能会尝试类似的东西:
var parent = this.DataContext as Parent;
var clicked = (sender as FrameworkElement).DataContext as Child;
parent.SelectedChild = clicked;
请记住,您通常可以将您的viewmodel对象作为FrameworkElement的DataContext。使用Visual Tree和Hit Testing不会经常出现。