我已经实现了一个功能区中的按钮,并且无法绑定到命令。功能区位于名为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上设置了断点,但没有命中。想法?
答案 0 :(得分:0)
在开发UserControl并在其中绑定时,您需要指定要绑定的元素。尝试:
<... Command="{Binding ElementName=AppRibbon, Path=SelectedModule.RenameModuleCmd}" />
假设您的UserControl被命名为AppRibbon,因为您的帖子似乎意味着。