C# 如何添加WPF treeView节点单击事件以获取节点值
我在C# 如何添加WPF treeView节点单击事件以获取节点值,c#,wpf,treeview,C#,Wpf,Treeview,我在WPF中有一个TreeView。现在,我想获取TreeView节点单击事件,以便获得用户单击的节点的值。 代码如下: <Grid Height="258" Width="275"> <TreeView Height="258" HorizontalAlignment="Left" Name="treeView1" VerticalAlignment="Top" Width="275"> </TreeView> </Grid&g
WPF
中有一个TreeView
。现在,我想获取TreeView
节点单击事件,以便获得用户单击的节点的值。
代码如下:
<Grid Height="258" Width="275">
<TreeView Height="258" HorizontalAlignment="Left" Name="treeView1" VerticalAlignment="Top" Width="275">
</TreeView>
</Grid>
像这样,我填充了TreeView,因为TreeView或TreeView没有可用的点击事件,所以这里有可能解决同样的问题 从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
}
c代码在哪里?您需要单击的节点还是选定的节点?通常在点击之后,一个节点也会被选中。@pushpraj实际上,C#代码很长。所以我只发布了一个小片段,我已经添加到了加载的窗口中app@Ok先生。我需要单击的一个Sir..@pushpraj Sir string header=item.header;正确吗?好的,先生。由于我是第一次使用wpf,因此如何将所选值从发送者获取到字符串中您可以访问项目属性,例如项目标题等。将发送者强制转换到TreeViewItem后,请参阅更新的答案。如果我没有错,
TreeViewItem item=发送者作为TreeViewItem
是已选择的树视图项。如果没有,请澄清你所说的项目是什么意思?我在这里有点迷茫,项目是被点击的节点,项目。标题是你在节点文本和项目中看到的文本。项目是它的子项目。如果这些价值都不是,那么你感兴趣的价值还有什么?您在哪里设置该值?item.Items是子项的对象集合,因此您可以将其用作TreeViewItem child1=item。Items[0]用作TreeViewItem;或者您可以在item.Items上的foreach循环中访问。foreach(item.Items中的TreeViewItem子项){//此处的逻辑}
void treeItem_Selected(object sender, RoutedEventArgs e)
{
TreeViewItem item = sender as TreeViewItem;
//you can access item properties eg item.Header etc.
//your logic here
}