示例#1
0
        protected virtual void StatefulPerform(CommandKey key, object param)
        {
            CommandHandler handler;

            if (!_handlers.TryGetValue(key, out handler))
            {
                return;
            }

            StatefulCommandHandler stateHandler = handler as StatefulCommandHandler;

            if (stateHandler == null)
            {
                return;
            }

            stateHandler.Selected = !stateHandler.Selected;

            if (stateHandler.Perform != null)
            {
                stateHandler.Perform(param);
            }

            Invalidate(key);
        }
示例#2
0
        public virtual bool IsSelected(CommandKey key)
        {
            CommandHandler handler;

            if (!_handlers.TryGetValue(key, out handler))
            {
                return(false);
            }

            StatefulCommandHandler stateHandler = handler as StatefulCommandHandler;

            if (stateHandler != null)
            {
                return(stateHandler.Selected);
            }

            CommandGroup group;

            if (!_toggleGroups.TryGetValue(handler.Group, out group))
            {
                return(false);
            }

            return(group.Selected == key);
        }
示例#3
0
 public void RegisterToggle(CommandKey key, Func <object, bool> performCheck, Action <object> perform)
 {
     _handlers[key] = new StatefulCommandHandler()
     {
         CanPerform = performCheck ?? DefaultStatefulCheck,
         Perform    = perform,
     };
 }