コード例 #1
0
        public static IBaseAction CopyActionItems(IdeBaseItem action, IdeCollection <IdeBaseItem> source)
        {
            IBaseAction ret = null;

            if (action is ActionItemModel)
            {
                ret = new ActionItemModel((ActionItemModel)action, source);
            }
            else if (action is ActionSubmenuItemModel)
            {
                ret = new ActionSubmenuItemModel((ActionSubmenuItemModel)action, source);
            }
            else if (action is ActionSeparatorItemModel)
            {
                ret = new ActionSeparatorItemModel((ActionSeparatorItemModel)action, source);
            }
            return(ret);
        }
コード例 #2
0
        public static IBaseAction CreateActionItem(IGroupAction action, IdeCollection <IdeBaseItem> source)
        {
            IBaseAction ret = null;

            if (action is GroupAction)
            {
                ret = new ActionItemModel((GroupAction)action, source);
            }
            else if (action is GroupActionSubmenu)
            {
                ret = new ActionSubmenuItemModel((GroupActionSubmenu)action, source);
            }
            else if (action is GroupActionSeparator)
            {
                ret = new ActionSeparatorItemModel((GroupActionSeparator)action, source);
            }
            return(ret);
        }
コード例 #3
0
 public ActionSubmenuItemModel(ActionSubmenuItemModel a)
 {
     Action = new GroupActionGroup
     {
         HeaderExecute = ((GroupActionGroup)a.Action).HeaderExecute,
         IsGroup       = ((GroupActionGroup)a.Action).IsGroup,
         Name          = ((GroupActionGroup)a.Action).Name,
         ShowExecute   = ((GroupActionGroup)a.Action).ShowExecute
     };
     Items = new ObservableCollection <IBaseAction>(a.Items.Select(x => ViewModelLocator.ActionViewModel.CopyActionItems(x)));
     ((GroupActionGroup)Action).Children = Items.Select(x => x.Action).ToList();
     Items.CollectionChanged            += (b, c) =>
     {
         ((GroupActionGroup)Action).Children = Items.Select(x => x.Action).ToList();
     };
     Parent     = a.Parent;
     ItemSource = a.ItemSource;
 }
コード例 #4
0
 public ActionSubmenuItemModel(ActionSubmenuItemModel a, IdeCollection <IdeBaseItem> source) : base(source)  //copy item
 {
     _action = new GroupActionSubmenu
     {
         HeaderExecute = a._action.HeaderExecute,
         IsGroup       = a.IsGroup,
         Name          = a.Name,
         ShowExecute   = a._action.ShowExecute
     };
     Items = new IdeCollection <IdeBaseItem>(this);
     Items.CollectionChanged += (b, c) =>
     {
         ((GroupActionSubmenu)_action).Children = Items.Select(x => ((ActionSubmenuItemModel)x)._action);
     };
     foreach (ActionSubmenuItemModel action in a.Items)
     {
         Items.Add(CopyActionItems(action, Items));
     }
     ;
 }