8,734
社区成员
发帖
与我相关
我的任务
分享
private void AddTreeNode(string parentID, TreeViewItem treeViewItem)
{
IList<BaseServiceRef.tbasemenufunction> tree = (from li in listMenuFun
where li.PCode == parentID
select li
).ToList<BaseServiceRef.tbasemenufunction>();
if (tree.Count > 0)
{
foreach (BaseServiceRef.tbasemenufunction m in tree)
{
TreeViewItem objTreeNode = new TreeViewItem();
StackPanel sp = new StackPanel();
CheckBox cb = new CheckBox();
cb.Checked += new RoutedEventHandler((sender, e) =>
{
foreach (TreeViewItem item in objTreeNode.Items) //循环处理树的子节点
{
((item.Header as StackPanel).Children[0] as CheckBox).IsChecked = true;
}
});
cb.Unchecked += new RoutedEventHandler((sender, e) =>
{
foreach (TreeViewItem item in objTreeNode.Items) //循环处理树的子节点
{
((item.Header as StackPanel).Children[0] as CheckBox).IsChecked = false;
}
});
cb.Tag = m.SCode;
if (_Menu_SCodeSBefore.IndexOf(m.SCode) != -1)
{
cb.IsChecked = true;
}
cb.Content = m.FuncName;
sp.Children.Add(cb);
objTreeNode.Header = sp;
objTreeNode.DataContext = m;
objTreeNode.IsExpanded = true;
if (treeViewItem == null)
{
tvMenuFunction.Items.Add(objTreeNode);
}
else
{
treeViewItem.Items.Add(objTreeNode);
}
AddTreeNode(m.SCode, objTreeNode);
}
}
}