在代码后面的RoutedCommand.Execute中设置RelativeSource CommandTarget

时间:2010-05-17 21:05:35

标签: wpf routed-commands

我有一个名为命令的静态类。其中一个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 :(得分:0)

根据定义,路由命令是路由的。如果我理解你的问题,你只需要传递this作为命令的第二个参数(假设你进入控制类)。该命令将冒出可视树,直到它遇到父命令绑定命令。