0

我在我的 WPF MVVM 应用程序中使用 Josh Smith 的 RelayCommand。

我有一个视图模型。在里面我有一个对另一个 ViewModel 的引用。

子 ViewModel 中有一个 ICommand 类型的属性。

在我的父 ViewModel 中,我可以向“CanExecute”谓词添加一个条件吗?

4

1 回答 1

0

你至少有两个选择:

  1. 您可以从父视图模型中公开一个新的 ICommand,该视图模型在其执行新命令的 CanExecute 时使用子视图模型。
  2. 您可以在子视图模型中添加对父视图模型的引用,并在子视图的 CanExecute 实现中调用父视图模型的方法。

第二个选项在孩子身上可能看起来像这样:

SampleCommand = new RelayCommand(..., param => ChildSampleCanExecute() && parentViewModel.ParentSampleCanExecute());
于 2010-12-25T05:49:59.423 回答