【问题标题】:Get the Parent node and Child node of selected items in WPF C# TreeView获取WPF C# TreeView中选中项的父节点和子节点
【发布时间】:2019-02-01 15:45:15
【问题描述】:

我使用此代码填充树视图。 如何获取所有父节点和子节点以及根? (视觉工作室 2017 WPF) example

private TreeViewItem GetTreeView(string text, string imagePath)
{ TreeViewItem item = new TreeViewItem();
item.IsExpanded = true;
// create stack panel
StackPanel stack = new StackPanel();
stack.Orientation = Orientation.Horizontal;
// create Image
Image image = new Image();
image.Source = new BitmapImage(new ri("pack://application:,,/Image/" + 
imagePath));
// Label
Label lbl = new Label();
lbl.Content = text;
lbl.Content = text;
// Add into stack
stack.Children.Add(image);
stack.Children.Add(lbl);
// assign stack to header
item.Header = stack;
return item;
}

我试过这段代码,它可以获取索引但我不能获取节点(父)

var tree = sender as TreeView;
if (tree.SelectedValue != null)
{
index++;
TreeViewItem itemLvl = tree.SelectedItem as TreeViewItem;
ItemsControl parent = ItemsControl.ItemsControlFromItemContainer(itemLvl);
while (parent != null && parent.GetType() == typeof(TreeViewItem))
{
index++;
parent = ItemsControl.ItemsControlFromItemContainer(parent);
//var sp = ?????.Header as StackPanel;
//var tb = sp.Children[1] as Label;
//var im = sp.Children[0] as Image;
//string test= sp.Children[1].ToString();
}

感谢您的帮助

【问题讨论】:

    标签: c# wpf treeview


    【解决方案1】:

    一般来说你的想法是正确的。

    您需要的代码如下所示:

        private void TvMain_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            string result = "";
    
            TreeView tree = (TreeView) sender;
    
            TreeViewItem item = (TreeViewItem) tree.SelectedItem;
            result = item.Header.ToString();
    
            while (item.Parent != null && item.Parent is TreeViewItem)
            {
                item = (TreeViewItem)item.Parent;
                result = item.Header.ToString() + " \\ " + result;
            }
    
            MessageBox.Show(result);
        }
    

    结果将是:

    https://github.com/KohrAhr/Q54482751 上提供完整的演示项目

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多