コード例 #1
0
ファイル: CommandService.cs プロジェクト: zst96226/dnSpy
        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);
        }
コード例 #2
0
 public void AddFilter(ICommandTargetFilter filter, double order) =>
 registeredCommandElement.AddFilter(filter, order);