Установите RelativeSource CommandTarget в RoutedCommand.Execute в коде позади - PullRequest
0 голосов
/ 18 мая 2010

У меня есть статический класс, называемый командами. Одна из RoutedCommands в нем называется ConfirmNoPrint. Я хочу выполнить его в коде позади моего пользовательского элемента управления следующим образом:

Commands.ConfirmNoPrint.Execute(null, [WHAT_DO_I_PUT_HERE]);

В пользовательском классе управления у меня есть экземпляр Binding, свойство RelativeSource которого установлено следующим образом:

_mainControlBinding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(UserControl), 2);

Можно ли использовать одно из свойств _mainControlBinding, чтобы получить экземпляр IInputElement, который мне нужно передать в качестве второго параметра Commands.ConfirmNoPrint.Execute?

Привязка команды для ConfirmNoPrint является родителем моего пользовательского элемента управления, но находится в другой сборке. Я не могу добавить ссылку на него, так как это приведет к циклической ссылке.

Я полностью лаю не на том дереве?

1 Ответ

0 голосов
/ 18 мая 2010

Маршрутизируемые команды по определению маршрутизируются. Если я хорошо понимаю вашу проблему, вам просто нужно передать this в качестве второго параметра вашей команды (при условии, что вы входите в класс управления). Команда будет пузыриться в визуальном дереве, пока не встретит привязку команды к родительскому элементу.

...