Ejemplo n.º 1
0
        private RoleSetModuleTreeItem ApplyCheckOnModuleTreeItem(ModuleTreeItem ti)
        {
            var rti = new RoleSetModuleTreeItem
            {
                Icon      = ti.Icon,
                IsChecked = false,
                Module    = ti.Module
            };

            if (ti.Children != null && ti.Children.Count > 0)
            {
                rti.Children = new List <RoleSetModuleTreeItem>();
                ti.Children.ForEach(c => rti.Children.Add(ApplyCheckOnModuleTreeItem(c)));
            }
            return(rti);
        }
Ejemplo n.º 2
0
 private void SetChildrenModulesChecked(List <SysModule> modules, ModuleTreeItem mti, RadTreeView tv)
 {
     if (mti.Children != null && mti.Children.Count > 0)//判断是否叶子节点
     {
         foreach (ModuleTreeItem m in mti.Children)
         {
             SetChildrenModulesChecked(modules, m, tv);
         }
     }
     else
     {
         if (modules.Any(sm => sm.ID == mti.Module.ID))
         {
             RadTreeViewItem tvItem = tv.ContainerFromItemRecursive(mti);
             if (tvItem != null)
             {
                 tvItem.CheckState = ToggleState.On;
             }
         }
     }
 }
Ejemplo n.º 3
0
 private void myRadDataForm_EditEnding(object sender, EditEndingEventArgs e)
 {
     if (myRadDataForm.CanCommitEdit && e.EditAction == EditAction.Commit)
     {
         List <SysModule> modules = new List <SysModule>();
         RadTreeView      tv      = this.GetMPTreeView();
         //由于tv.CheckedItems不会包含未展开子节点(即使子节点被选中),因此咱们换一种方式
         foreach (var item in tv.CheckedItems)
         {
             ModuleTreeItem mti = (ModuleTreeItem)item;
             modules.Add(mti.Module);
         }
         //以下方式同样木有用
         //IList dataSource = tv.ItemsSource as IList;
         ////dataSource是object集合,但是竟然能用ModuleTreeItem的对象去枚举,第一次知道,不知道其它集合类型会否有类似用法
         //foreach (ModuleTreeItem mti in dataSource)
         //{
         //    RadTreeViewItem container = tv.ContainerFromItemRecursive(mti);
         //    if (container != null && container.CheckState != ToggleState.Off)
         //    {
         //        modules.Add(mti.Module);
         //        if (mti.Children.Count > 0)
         //            modules.AddRange(GetCheckedChildrenModules(tv, mti));
         //    }
         //}
         var role = (SysRoleBO)myRadDataForm.CurrentItem;
         role.Modules = modules;
         SetOPAndIMAccess(role);
         RoleVM _dataContext = new RoleVM();
         UIHelper.AddOrUpdateRecord <SysRole>(myRadDataForm, _dataContext, e);
         if (myRadDataForm.Mode == RadDataFormMode.AddNew && !e.Cancel)
         {
             RadGridView1.Rebind();//重新绑定,将创建者反馈到界面上
         }
     }
 }