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); }
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); }
public void RegisterToggle(CommandKey key, Func <object, bool> performCheck, Action <object> perform) { _handlers[key] = new StatefulCommandHandler() { CanPerform = performCheck ?? DefaultStatefulCheck, Perform = perform, }; }