[英]WPF get Content of a treeviewitem
我需要检查用户每次更改时选择的treeviewitem
。 我使用了SelectedItemChanged
方法或任何所谓的方法。 它工作正常,但现在我需要为每个可能的treeviewitem
做一个switch case
。 但是我无法做到这一点,因为我不知道如何获得它的名字。 我在互联网上检查了一下,但有人说使用treeview.SelectedItem
但它返回System.Windows.Controls.TreeViewItem Header: Items.Count:0
。 我想知道是否可以完全在.cs代码文件中执行此操作,或者是否必须使用数据绑定等。
谢谢你的帮助。
编辑:
这是我设置Treeview和TreeViewItems的方式。 它们都像第二个例子。
<TreeView x:Name="treeview" Margin="10,10,0,4" HorizontalAlignment="Left" Width="192" Background="#FFA45353" SelectedItemChanged="treeview_SelectedItemChanged"">
<TreeViewItem IsExpanded="False">
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<Image Source="./Resources/smallicons/icon.jpg"/>
<TextBlock Text=" Main" FontSize="14"/>
</StackPanel>
</TreeViewItem.Header>
<!--==============================================================================================-->
<TreeViewItem>
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="First" Foreground="Black" />
</StackPanel>
</TreeViewItem.Header>
</TreeViewItem>
<!--==============================================================================================-->
您在找这个吗?
TreeViewItem selectedNode = (TreeViewItem)treeView.SelectedItem;
string strSelectedNode = selectedNode.Header.ToString();
上面的代码段假设了一些事情 。
顺便说一句,这段代码是
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
TreeViewItem selectedNode = (TreeViewItem)treeView.SelectedItem;
MessageBox.Show(selectedNode.Header.ToString());
}
好的...根据您的treeview和treeview项目设置,您必须编写如下代码。
private void treeview_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
TreeViewItem selectedNode = (TreeViewItem)treeview.SelectedItem;
var sp = selectedNode.Header as StackPanel;
var tb = sp.Children[0] as TextBlock;
var selecteditem = tb.Text;
//MessageBox.Show(selecteditem);
switch (selecteditem)
{
case "Main":
MessageBox.Show(selecteditem);
break;
case "First":
MessageBox.Show(selecteditem);
break;
default:
MessageBox.Show("no matching item found");
break;
}
}
在这里,我正在挖掘选定的树形视图项目以获取选定的树形视图项目的文本。 您可能需要稍微调整代码才能使其完全正常运行。 让我知道您是否需要任何帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.