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); }
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); }
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; }
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); }