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

时间:2014-07-22 07:01:03

标签: c# wpf treeview

TreeView中有WPF。现在我想获取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

1 个答案:

答案 0 :(得分:3)

由于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
    }

在两种方法中,发件人都是已被点击的节点。你可以用作

示例

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