public BaseGroupItemModel(BaseGroupItemModel g, IdeCollection <IdeBaseItem> source) : base(source) //copy item { _group = new Group { Visibility = g.GroupVisibility, }; Name = g.Name; NewActionCommand = new RelayCommand <IdeCollection <IdeBaseItem> >(NewAction); NewSubmenuCommand = new RelayCommand <IdeCollection <IdeBaseItem> >(NewSubmenu); NewSeparatorCommand = new RelayCommand <IdeCollection <IdeBaseItem> >(NewSeparator); ActionsDropHandler = new ActionsDropHandler(); GroupActions = new IdeCollection <IdeBaseItem>(this, typeof(IBaseAction)); GroupActions.CollectionChanged += (a, b) => { _group.GroupActions = GroupActions.Select(x => ((IBaseAction)x)._action); }; foreach (var item in g.GroupActions) { GroupActions.Add(IBaseAction.CopyActionItems(item, GroupActions)); } CardActions = new IdeCollection <IdeBaseItem>(this, typeof(IBaseAction)); CardActions.CollectionChanged += (a, b) => { _group.CardActions = CardActions.Select(x => ((IBaseAction)x)._action); }; foreach (var item in g.CardActions) { CardActions.Add(IBaseAction.CopyActionItems(item, CardActions)); } }
public GroupItemModel(GroupItemModel g, IdeCollection <IdeBaseItem> source) : base(source) // copy item { NewActionCommand = new RelayCommand <IdeCollection <IdeBaseItem> >(NewAction); NewSubmenuCommand = new RelayCommand <IdeCollection <IdeBaseItem> >(NewSubmenu); NewSeparatorCommand = new RelayCommand <IdeCollection <IdeBaseItem> >(NewSeparator); ActionsDropHandler = new ActionsDropHandler(); _group = new Group { Visibility = g.GroupVisibility, Shortcut = g.Shortcut, Ordered = g.Ordered, MoveTo = g.MoveTo, ViewState = g.ViewState }; Name = g.Name; GroupActions = new IdeCollection <IdeBaseItem>(this); GroupActions.CollectionChanged += (a, b) => { _group.GroupActions = GroupActions.Select(x => ((IBaseAction)x)._action); }; foreach (var item in g.GroupActions) { GroupActions.Add(IBaseAction.CopyActionItems(item, GroupActions)); } CardActions = new IdeCollection <IdeBaseItem>(this); CardActions.CollectionChanged += (a, b) => { _group.CardActions = CardActions.Select(x => ((IBaseAction)x)._action); }; foreach (var item in g.CardActions) { CardActions.Add(IBaseAction.CopyActionItems(item, CardActions)); } Asset = new AssetController(AssetType.Image); Asset.Register(g._group.Icon); _group.Icon = Asset.FullPath; Asset.PropertyChanged += AssetUpdated; }