我有带复选框的树视图,想访问树视图中子节点的子节点。
这是我制作树状视图的方式,我想访问level4项的check和uncheck值,以便可以插入数据库。
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;
}
我能够访问子节点及其值,如下所示。
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。任何想法如何访问这些子节点。提前致谢。
我自己想出了解决这个问题的方法。这就是我访问子节点的parent.children的方式。
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
{
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句