如何添加WPF TreeView Node Click事件以获取节点值

How to add WPF treeView Node Click event to get the node value(如何添加WPF TreeView Node Click事件以获取节点值)
本文介绍了如何添加WPF TreeView Node Click事件以获取节点值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在WPF中有一个TreeView。现在我想要获取TreeView节点单击事件,这样我就可以获取用户单击的节点的值。 代码如下:

<Grid Height="258" Width="275">
    <TreeView Height="258" HorizontalAlignment="Left" Name="treeView1" VerticalAlignment="Top" Width="275">    
    </TreeView>
</Grid>

我已经从C#代码填充了这个TreeView。我需要向C#代码中写入什么事件方法才能获取用户在C#代码中单击的节点值。

请帮帮我。

这里是c#。

TreeViewItem treeItem = null;
treeItem = new TreeViewItem();
treeItem.Header = "Name";

这样,我填充了TreeView。

推荐答案

由于没有可用于TreeViewItem或TreeView的Click事件,因此以下是相同

的可能解决方法

您有两个来自C#代码的选项

使用MouseLeftButtonUp,它将在每次在项目上释放鼠标左键时触发,类似于单击

    void preparemethod()
    {
        ...
        TreeViewItem treeItem = null;
        treeItem = new TreeViewItem();
        treeItem.Header = "Name";
        treeItem.MouseLeftButtonUp += treeItem_MouseLeftButtonUp;
    }

    void treeItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        //your logic here
    }

或使用选定元素作为触发器,在单击选定元素时可能不会触发

    void preparemethod()
    {
        ...
        TreeViewItem treeItem = null;
        treeItem = new TreeViewItem();
        treeItem.Header = "Name";
        treeItem.Selected += treeItem_Selected;
    }

    void treeItem_Selected(object sender, RoutedEventArgs e)
    {
        //your logic here
    }
在这两种方法中,发送方都是已单击的节点。您可以使用AS

示例

    void treeItem_Selected(object sender, RoutedEventArgs e)
    {
        TreeViewItem item = sender as TreeViewItem;
        //you can access item properties eg item.Header etc. 
        //your logic here 
    }

这篇关于如何添加WPF TreeView Node Click事件以获取节点值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)