2010-05-17 2 views
0

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

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

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

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

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

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

Я вообще лаю по неправильному дереву?

+0

Это команда UI, например, когда кто-то нажимает кнопку или что-то в этом роде? – user7116

ответ

0

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

+0

Ах, tx. Думаю, я думал об этом. :) –

Смежные вопросы