예제 #1
0
        public DockViewModel(Dock model)
        {
            Model = model;
            Model.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == AutohidePropertyName)
                {
                    Autohide = model.Configuration.Autohide;
                }
                IsDirty = true;
            };

            if (IsInDesignModeStatic)
            {
                throw new Exception();
            }

            var viewModels = model.AllItems.Select(i => new DockItemViewModel(i));

            Items = new ObservableCollection <DockItemViewModel>(viewModels);

            ContextMenu = new List <ContextMenuItemViewModel>
            {
                new ContextMenuItemViewModel(DockItemAction.CreateToggle("Autohide Dock", () => Model.Configuration.Autohide = true, () => Model.Configuration.Autohide = false, Model.Configuration.Autohide)),
                new ContextMenuItemViewModel(DockItemAction.CreateNormal("Close", CloseDockWindow))
            };
        }
예제 #2
0
        /// <summary>
        /// Initializes a new instance of the MenuItemViewModel class.
        /// </summary>
        public ContextMenuItemViewModel(DockItemAction model)
        {
            if (model == null)
            {
                IsSeparator = true;
                return;
            }

            Model = model;
            Label = model.Label;
            if (model.Action != null)
            {
                Action = new RelayCommand(model.Action);
            }
            IsTogglable = model.IsTogglable;
            ToggleState = model.ToggleState;
            HasSubmenu  = model.HasSubmenu;
            if (model.HasSubmenu)
            {
                Submenu = model.Submenu.Select(m => new ContextMenuItemViewModel(m));
            }
        }