所以我在菜单栏中放置了一个放大按钮,下面有几个级别的控件我想要放大命令并放大正在查看的对象并重新绘制。
正如我从阅读中理解的那样,命令通常会弹出来自命令源的预览事件(在本例中为按钮),然后隧道返回命令源,寻找将命令绑定到命令源的命令绑定。命令的事件处理程序。但是,在我的情况下,我想要影响的控件是从按钮向下的级别。
将绑定置于更高级别的控件中是否正确,然后让更高级别的控件运行较低级别函数的方法?
我认为将代码设置为子后代的命令目标可能看起来更干净,但现在我不确定这是否是命令目标实际上做的。
我可以像这样放置命令目标:
CommandTarget="{Binding ElementName=wavegraphcanvas, Path=CommandTarget, Mode=OneWay}"
在xaml中并让它在其子元素中找到元素?*
我认为会发生什么事情会从按钮冒出来然后隧道向下直到找到元素名称或其他东西
答案 0 :(得分:2)
当您知道目标是哪个元素时,CommandTarget
是合适的。在你的情况下似乎是真的。
如果您有多个可以接收命令的元素(例如,3个文本框获得Paste
命令),则设置CommandTarget
没有意义。这就是RoutedCommand
的路由部分所做的事情;尝试找到应用命令的适当元素,