隧道命令

时间:2012-06-18 11:07:50

标签: wpf icommand routed-events commandbinding tunneling

我有几个用户控件在ListBox中实例化。我的窗口中有一个按钮,它会引发NavigationCommands.Refresh,还有一个CanExecute处理程序,允许它执行:

<Window.CommandBindings>
    <CommandBinding Command="NavigationCommands.Refresh" CanExecute="CanAlwaysExecute" />
</Window.CommandBindings>

在这些动态创建的每个用户控件中(在ListBox的ItemTemplate中创建),我有NavigationCommands.Refresh的处理程序。当我单击窗口中的按钮时,我在每个用户控件中设置的处理程序是否应该不会触发?我需要命令隧道传输到每个UC,但事实并非如此。

<UserControl.CommandBindings>
    <CommandBinding Command="NavigationCommands.Refresh" Executed="UpdateStatus" CanExecute="CanAlwaysExecute" />
</UserControl.CommandBindings>
....
<Button Width="200" Text="Refresh All" Command="NavigationCommands.Refresh"/>

1 个答案:

答案 0 :(得分:0)

隧道命令不起作用,它们从根到目标站点,它们不会“分裂”。所以他们从窗口开始,然后在点击的按钮处结束。