Esempio n. 1
0
        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));
 }
Esempio n. 4
0
 public NextCommandTarget(RegisteredCommandElement owner, ICommandTargetFilter filter)
 {
     ownerWeakRef  = new WeakReference(owner);
     filterWeakRef = new WeakReference(filter);
 }
Esempio n. 5
0
 public CommandTargetCollection(RegisteredCommandElement registeredCommandElement) => this.registeredCommandElement = registeredCommandElement;