如何在树视图WPF中访问子节点的子节点 [英] How to access Children Node of Children in Tree view WPF

查看:81
本文介绍了如何在树视图WPF中访问子节点的子节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有树形图和复选框,想要在树视图中访问子节点的子节点。



这是我如何制作树视图,我想访问level4项目检查并取消选中值,以便我可以插入数据库。



I have treeview with checkboxes, want to access children node of children node in treeview.

This is how i made a treeview,I want to access level4 items check and uncheck value ,so that i can insert into database.

private void FillingTreeDynamic()
       {
           Nodes.Clear();
           var data = dbobj.GetDataFromDataBase("", "Select * from Master");
           foreach (DataRowView dr in data)
           {
               var level_1_items = new Node() { Text = dr["MasterName"].ToString(),IsChecked=false};
               var details = dbobj.GetDataFromDataBase("", "Select * from Details where MasterID='"+Convert.ToInt32(dr["ID"].ToString())+"'");
               foreach(DataRowView row in details)
               {
                   var level_2_items = new Node() { Text = row["SubName"].ToString(),IsChecked=false};
                   level_2_items.Parent.Add(level_1_items);
                   level_1_items.Children.Add(level_2_items);
                   var level_3_items = new Node() { Text ="View",IsChecked=false };
                   level_3_items.Parent.Add(level_2_items);
                   level_2_items.Children.Add(level_3_items);
                   var dataView = dbobj.GetDataFromDataBase("","select * from ViewDetails");
                   foreach (DataRowView rowview in dataView)
                   {
                       var level_4_items = new Node() {Text=rowview["RightsName"].ToString(), IsChecked = false };
                       level_4_items.Parent.Add(level_3_items);
                       level_3_items.Children.Add(level_4_items);
                   }

               }

               Nodes.Add(level_1_items);
           }
           treeView.ItemsSource = Nodes;

       }





我能够访问子节点及其值,如下所示。





I am able to access the children nodes and its values as shown below.

 public ObservableCollection<Node> Nodes { get; private set; } 
foreach (var parent in Nodes)
{
if (parent.IsChecked == true)
{
foreach (var item in parent.Children)
{
if (item.IsChecked == true)
{
}
else
{
} 
}
else
{
} 	
}





我如何访问子节点的parent.Children。任何想法如何访问这些子节点。

提前谢谢。



How can i access the parent.Children of children nodes.Any idea how to access these children nodes.
Thanks in advance.

推荐答案

我自己想出了解决这个问题的方法。这就是我访问子节点的parent.children的方式。



I figured out a solution for this issue myself. This is how i accessed the parent.children of children nodes.

foreach (var parent in Nodes)
{
if (parent.IsChecked == true)
{
foreach (var item in parent.Children)
{
if (item.IsChecked == true)
{
}
else
{
} 
 foreach(var vtemp in item.Children)
 {
  foreach (var vtemp1 in vtemp.Children)
     {
       // and did my logic
     }
   }
}
else
{
} 	
}


这篇关于如何在树视图WPF中访问子节点的子节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆