public IRegisteredCommandElement Register(UIElement sourceElement, object target) { if (sourceElement == null) { throw new ArgumentNullException(nameof(sourceElement)); } if (target == null) { throw new ArgumentNullException(nameof(target)); } var coll = new KeyShortcutCollection(); foreach (var provider in commandInfoProviders) { coll.Add(provider.Value, target); } var cmdElem = new RegisteredCommandElement(this, sourceElement, coll, target); foreach (var c in commandTargetFilterProviders) { var filter = c.Value.Create(target); if (filter == null) { continue; } cmdElem.AddFilter(filter, c.Metadata.Order); } return(cmdElem); }
public CommandTargetStatus Execute(Guid group, int cmdId, object args, ref object result) { if (registeredCommandElement?.TryGetTargetOrUnregister() == null) { registeredCommandElement = null; return(CommandTargetStatus.NotHandled); } return(registeredCommandElement.Execute(group, cmdId, args, ref result)); }
public CommandTargetStatus CanExecute(Guid group, int cmdId) { if (registeredCommandElement?.TryGetTargetOrUnregister() == null) { registeredCommandElement = null; return(CommandTargetStatus.NotHandled); } return(registeredCommandElement.CanExecute(group, cmdId)); }
public NextCommandTarget(RegisteredCommandElement owner, ICommandTargetFilter filter) { ownerWeakRef = new WeakReference(owner); filterWeakRef = new WeakReference(filter); }
public CommandTargetCollection(RegisteredCommandElement registeredCommandElement) => this.registeredCommandElement = registeredCommandElement;