Click here to Skip to main content
15,893,668 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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.

C#
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.

C#
 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
{
} 	
}


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

1 solution

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

C#
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
{
} 	
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900