麻烦绑定命令到WPF中的按钮

时间:2010-05-10 10:44:24

标签: wpf command mvvm

我已经实现了一个功能区中的按钮,并且无法绑定到命令。功能区位于名为AppRibbon的UserControl中。 AppRibon控件有一个名为SelectedModule的公共属性,它有一个名为RenameModuleCmd的属性。当我为按钮创建一个事件处理程序时,我会显式调用该命令以确保一切正常,如下所示:

  public partial class ApplicationRibbon : UserControl {
    public ApplicationRibbon() {
      InitializeComponent();
    }

    public ModuleViewModel SelectedModule { get; set; }

    private void ButtonTool_Click(object sender, RoutedEventArgs e) {
      SelectedModule.RenameModuleCmd.Execute(null);
    }
  }

这很好用。但我显然不想使用模型背后的代码......而是使用Command绑定。所以我尝试了后续绑定,但没有解雇命令。

<... Command="{Binding Path=SelectedModule.RenameModuleCmd}" />
<... Command="{Binding Path=AppRibbon.SelectedModule.RenameModuleCmd}" />

我无法弄清楚为什么这些不起作用。我在命令的CanExecute和Execute方法以及RenameModuleCmd属性的getter上设置了断点,但没有命中。想法?

1 个答案:

答案 0 :(得分:0)

在开发UserControl并在其中绑定时,您需要指定要绑定的元素。尝试:

<... Command="{Binding ElementName=AppRibbon, Path=SelectedModule.RenameModuleCmd}" />

假设您的UserControl被命名为AppRibbon,因为您的帖子似乎意味着。