我在wpf中有一个TreeView
,如何获取TreeView
节点单击事件,以便获得用户单击的节点的值?
X射线
<Grid Height="258" Width="275">
<TreeView Height="258" HorizontalAlignment="Left" Name="treeView1" VerticalAlignment="Top" Width="275">
</TreeView>
</Grid>
我已经从C#代码中填充了这个TreeView
。我需要用什么事件方法写入C#代码才能在我的C#代码中获得用户单击的节点的值。
代码延迟加载
TreeViewItem treeItem = null;
treeItem = new TreeViewItem();
treeItem.Header = "Name";
3条答案
按热度按时间7rfyedvj1#
由于没有可用于TreeViewItem或TreeView的Click事件,因此以下是可能的解决方法
在C#代码中有两个选项
使用
MouseLeftButtonUp
,它将在每次在项目上释放鼠标左键时触发,类似于单击或使用选定项作为触发器,则在单击选定元素时可能不会触发
在这两个方法中发送者是这节点已经被点击.你能使用作为
范例
vfwfrxfs2#
如果您需要采取更MVVM友好的方法,可以在TreeView ItemTemplate上使用交互触发器,并将带有treeview项目对象参数的命令绑定回父ViewModel:
z2acfund3#
如果您已将上下文菜单添加到树视图中,onclick事件仅返回单击它的菜单项,即可视化树。
获取实际树视图项的更好方法是执行以下步骤
1.将正在执行相关操作的
TreeView
命名为tView
,例如本例中的tView
。1.在菜单的单击事件(或实际上任何其他事件)中获取当前选定的项
var node = tView.SelectedItem as TreeViewItem
如果当前没有选定的项目,请告诉用户选择该项目并再次执行该过程。选定后,此时您就有了实际的树视图项目,可以使用该项目并执行所需的操作。