private void TreeViewMain_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
 {
     if (TreeViewMain != null)
     {
         PrivilegeNode selNode = TreeViewMain.SelectedItem as PrivilegeNode;
         vm.CurPrivilegeNode = selNode;
         vm.GetCurCurPrivilege(selNode);
     }
 }
 private void ModifyNode_Load(object sender, EventArgs e)
 {
     #region 初始化扩展的下拉框控件
     //checkedListBox1.SelectionMode= SelectionMode.MultiSimple;
     comboBox1.ImageList = imageList1;
     comboBox2.ImageList = imageList1;
     for (int i = 0; i < imageList1.Images.Count; i++)
     {
         comboBox1.Items.Add(new ComboBoxExItem(i.ToString(), i));
         comboBox2.Items.Add(new ComboBoxExItem(i.ToString(), i));
     }
     #endregion
     textBox2.Text  = currentnode.Text;
     textBox3.Text  = currentnode.Name;
     comboBox1.Text = currentnode.ImageIndex.ToString();
     comboBox2.Text = currentnode.SelectedImageIndex.ToString();
     flag           = DetailInfo.Categery.TreeNodes.GetNodeFlag(Convert.ToInt32(currentnode.Tag));
     if (flag == "N")
     {
         radioBtn.Checked        = true;
         radioButton1.Checked    = false;
         checkedListBox1.Visible = false;
     }
     else
     {
         radioButton1.Checked    = true;
         radioBtn.Checked        = false;
         checkedListBox1.Visible = true;
     }
     string sql = "select t.privilege_id,t.privilege_flag from privilege_tab t where t.privilege_cata='Pipe' order by privilege_id";
     DataBind(sql);
     List <int>     privilegeids = PrivilegeNode.GetPrivilegeIds(Convert.ToInt32(currentnode.Tag));
     OracleDatabase db           = new OracleDatabase(DataAccess.OIDSConnStr);
     DataSet        ds           = db.ExecuteDataSet(CommandType.Text, sql);
     //string aa = checkedListBox1.GetItemText(checkedListBox1.Items[1]);
     for (int j = 0; j < checkedListBox1.Items.Count; j++)
     {
         for (int i = 0; i < privilegeids.Count; i++)
         {
             if (ds.Tables[0].Rows[j]["privilege_id"].ToString() == privilegeids[i].ToString())
             {
                 checkedListBox1.SetItemChecked(j, true);
             }
         }
     }
 }
        /// <summary>
        /// 当子节点权限改变时,父节点设置相同权限
        /// </summary>
        /// <param name="nodeid"></param>
        private void SetPrivilegetoParentnode(int privilegeid, int nodeid)
        {
            int parentid = TreeNodes.GetParentid(nodeid);

            tnTmp = nodelist.Find(delegate(TreeNodes tn) { return(tn.Id == parentid); });
            if (tnTmp == null)//没有父节点
            {
                return;
            }
            else
            {
                if (TreeNodes.GetNodeFlag(parentid) == "N")//父节点没有权限设置
                {
                    return;
                }
                else
                {
                    if (PrivilegeNode.ExistPrivilege(privilegeid, parentid))//如果父节点有该权限设置
                    {
                        return;
                    }
                    else
                    {
                        PrivilegeNode pnTmp = new PrivilegeNode();//父节点权限设置
                        pnTmp.PrivilegeId = privilegeid;
                        pnTmp.NodeId      = parentid;
                        int n = pnTmp.Add();
                        if (n == 0)
                        {
                            MessageBox.Show("Error!");
                        }
                        SetPrivilegetoParentnode(privilegeid, parentid);
                    }
                }
            }
        }