1

我目前有一个带有 Button 和 ContentPresenter 的主视图,它绑定到 ViewModel 的一个属性,该属性是另一个 View(和关联的 ViewModel)。有没有办法从 ContentPresenter 中加载的控件中声明的处理程序路由命令?我这样做的原因是主视图包含工具栏,而内容演示​​者具有内容。我正在使用 Microsoft MVVM 模板和生成的 DelegateCommand 类。

<Window ...>
   <Button x:Name="btnAction" Command="{Binding ActionCommand}" />
   <ContentPresenter Content="{Binding CurrentView}" />
</Window>
4

1 回答 1

1

您应该创建一个命令对象,它是窗口和控件都可以看到的类上的静态对象。

  public static class MyCommands
  {
     public static RoutedUICommend CoolCommand .....;
  }

然后可以将控件的Command属性绑定到命令对象上,例如:

<Button Command="cmd:MyCommands.CoolCommand" />

然后,您只需使用 CommandBinding XAML 元素在窗口级别处理命令绑定。

<CommandBinding Command="cmd:MyCommands.CoolCommand" Executed="My_Handler" />
于 2009-11-02T22:27:50.030 回答