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 void AddFilter(ICommandTargetFilter filter, double order) => registeredCommandElement.AddFilter(filter, order);