示例#1
0
        public static void ConfigureTwoStateMenuItemRichCommand(TwoStateMenuItemRichCommand menuItem, bool choice)
        {
            //RichDelegateCommand command = menuItem.RichCommandOne;

            //if (command.KeyGesture == null && menuItem.RichCommandTwo.KeyGesture != null)
            //{
            //    command.KeyGestureText = menuItem.RichCommandTwo.KeyGestureText;
            //}

            if (menuItem.InputBindingManager != null)
            {
                if (choice)
                {
                    if (true
                        //KeyGestureString.AreEqual(command.KeyGesture, menuItem.RichCommandTwo.KeyGesture)
                        //&& command.KeyGesture.Equals(menuItem.RichCommandTwo.KeyGesture)
                        )
                    {
                        if (menuItem.RichCommandTwo.KeyGesture != null)
                        {
                            menuItem.InputBindingManager.RemoveInputBinding(menuItem.RichCommandTwo.KeyBinding);
                        }

                        if (menuItem.RichCommandOne.KeyGesture != null)
                        {
                            menuItem.InputBindingManager.AddInputBinding(menuItem.RichCommandOne.KeyBinding);
                        }
                    }
                }
                else
                {
                    //command = menuItem.RichCommandTwo;

                    //if (command.KeyGesture == null && menuItem.RichCommandOne.KeyGesture != null)
                    //{
                    //    command.KeyGestureText = menuItem.RichCommandOne.KeyGestureText;
                    //}

                    if (true
                        //&& KeyGestureString.AreEqual(command.KeyGesture, menuItem.RichCommandOne.KeyGesture)
                        //&& command.KeyGesture.Equals(menuItem.RichCommandOne.KeyGesture)
                        )
                    {
                        if (menuItem.RichCommandOne.KeyGesture != null)
                        {
                            menuItem.InputBindingManager.RemoveInputBinding(menuItem.RichCommandOne.KeyBinding);
                        }

                        if (menuItem.RichCommandTwo.KeyGesture != null)
                        {
                            menuItem.InputBindingManager.AddInputBinding(menuItem.RichCommandTwo.KeyBinding);
                        }
                    }
                }
            }

            MenuItemRichCommand.ConfigureMenuItemFromCommand(menuItem,
                                                             choice ? menuItem.RichCommandOne : menuItem.RichCommandTwo);
        }
示例#2
0
        private void OnCommandDataChanged(object sender, EventArgs e)
        {
            var command = sender as RichDelegateCommand;

            if (command == null)
            {
                return;
            }

            if (command != Command)
            {
#if DEBUG
                Debugger.Break();
#endif
                return;
            }

            MenuItemRichCommand.RefreshMenuItemFromItsRichCommand(this);
        }
示例#3
0
        public static void SetRichCommand(RichDelegateCommand command, TwoStateMenuItemRichCommand menuitem, EventHandler dataChangedEventCallback)
        {
            if (menuitem.Command == command)
            {
                return;
            }

            if (menuitem.Command != null &&
                menuitem.Command is RichDelegateCommand &&
                ((RichDelegateCommand)menuitem.Command).DataChangedHasHandlers)
            {
                ((RichDelegateCommand)menuitem.Command).DataChanged -= dataChangedEventCallback;
            }

            menuitem.Command = command;

            MenuItemRichCommand.RefreshMenuItemFromItsRichCommand(menuitem);

            command.DataChanged += dataChangedEventCallback;
        }
示例#4
0
 protected override DependencyObject GetContainerForItemOverride()
 {
     if (m_Item == null)
     {
         return(new MenuItem());
     }
     if (m_Item is MenuItemRichCommand)
     {
         return((MenuItemRichCommand)m_Item);
     }
     if (m_Item is RichDelegateCommand)
     {
         var container = new MenuItemRichCommand();
         //ConfigureMenuItemFromCommand(container, (RichDelegateCommand)m_Item);
         return(container);
     }
     if (m_Item is TwoStateMenuItemRichCommand_DataContextWrapper)
     {
         var container = new TwoStateMenuItemRichCommand();
         //TwoStateMenuItemRichCommand.ConfigureTwoStateMenuItemRichCommand(container, ((TwoStateMenuItemRichCommand_DataContextWrapper)m_Item).RichCommandActive);
         return(container);
     }
     return((DependencyObject)m_Item);
 }