我希望能够在我的程序中右键单击选择TreeViewItem
。以前,(在this question中)我试图通过从任何我想允许选择TreeViewItem
的地方调用SetSelectedItem()
方法来实现这一点。该问题的答案被编译并运行,但实际上并不允许TreeViewItem
像我想的那样被选择。
除了hierachicalDataTemplate
之外,我一直在考虑的This question与这个问题几乎完全相同。我的TreeView
没有hierachicalDataTemplate
,如果它对我的程序来说是不必要的,我希望避免它。
这是我正在编译的,但现在不影响改变...
//Sets selected item in TreeView and passes to MainWindowViewModel
private void SetSelectedItem()
{
MainWindowViewModel.SelectedItem = Tree_One.SelectedItem as TreeViewItem;
}
//**** This is the function this question is about -- It's Supposed to select item on RightClick
private void Tree_One_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
SetSelectedItem();
}
为了清楚起见,我右键单击的节点没有像预期的那样被选中。我做错了什么?我该如何修复它?
- 更新日期:**
我想我知道问题出在哪里了。我在这个问题中的代码实际上并没有改变选中的项目,它只是通过选择当前选中的项目来重复,重新选择它。如果有一种方法可以将选中的项目改变为右键单击的项目,它将完美地运行。关于如何做类似的事情,有什么线索吗?
4条答案
按热度按时间ruyhziif1#
this question上的@alex2k8的答案正是我所寻找的,也是我用来解决我的问题的答案。
感谢所有帮忙的人。
lymnna712#
抱歉我的英语不好。我正在使用MS VS 2017 Version 15.9.1。
所以-你所有的方式选择一个treeviewItem通过鼠标右键点击不工作-我不知道为什么。
但我找到了一个可行的方法:
库马克
qco9c6ql3#
请参阅下面的示例代码片段,它可以获取选定的项目
XAML语言
798qvoo84#
这可能有点过时,但我刚刚找到了一个非常好的解决方案。至少海事组织。
TreeView现在支持NodeMouseClick事件,您可以在该事件中选择单击的节点。