我需要检查用户每次更改时选择的treeviewitem
。我使用SelectedItemChanged
方法或其他任何方法。它工作正常,但现在我需要为每个可能的switch case
执行treeviewitem
。但我无法做到这一点,因为我不知道如何得到它的名称。我在互联网上查了一下,但有些人说使用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>
<!--==============================================================================================-->
答案 0 :(得分:1)
你在找这个吗?
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());
}
答案 1 :(得分:0)
好的......根据你的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;
}
}
在这里,我正在挖掘选定的树视图项以获取所选树视图项的文本。您可能需要稍微调整一下代码才能使其完全正常运行。如果您需要任何帮助,请告诉我。