Пример #1
0
        public void BindAction(DefaultUIActionBinding binding, bool alwaysVisible)
        {
            if (binding.DefaultInterfaces.TryGet(out IContextMenuUIActionInterface _))
            {
                DropDownItemsActionHandler.BindAction(new UIActionBinding(binding, perform =>
                {
                    try
                    {
                        if (perform)
                        {
                            Owner.HideMainMenu();
                        }

                        // Try to find a UIActionHandler that is willing to validate/perform the given action.
                        foreach (var actionHandler in UIActionUtilities.EnumerateUIActionHandlers(FocusHelper.GetFocusedControl()))
                        {
                            UIActionState currentActionState = actionHandler.TryPerformAction(binding.Action, perform);
                            if (currentActionState.UIActionVisibility != UIActionVisibility.Parent)
                            {
                                return(currentActionState.UIActionVisibility == UIActionVisibility.Hidden && alwaysVisible
                                    ? UIActionVisibility.Disabled
                                    : currentActionState);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                    }

                    // No handler in the chain that processes the UIAction actively, so set to hidden/disabled.
                    return(alwaysVisible ? UIActionVisibility.Disabled : UIActionVisibility.Hidden);
                }));
            }
        }
Пример #2
0
 public void BindAction(DefaultUIActionBinding binding)
 => BindAction(binding, alwaysVisible: true);