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
答案 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
}