【发布时间】:2011-02-17 14:55:21
【问题描述】:
我在已实现的功能区中有一个按钮,但无法绑定到命令。功能区位于名为 AppRibbon 的用户控件中。 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 上设置了断点,但没有一个被命中。想法?
【问题讨论】: