【问题标题】:Can I add one more condition to canExecute predicate?我可以在 canExecute 谓词中再添加一个条件吗?
【发布时间】:2010-12-25 03:27:18
【问题描述】:

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

我有一个 ViewModel。在里面我有一个对另一个 ViewModel 的引用。

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

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

【问题讨论】:

    标签: wpf mvvm predicate canexecute


    【解决方案1】:

    你至少有两个选择:

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

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

    SampleCommand = new RelayCommand(..., param => ChildSampleCanExecute() && parentViewModel.ParentSampleCanExecute());
    

    【讨论】:

    • 无论如何我可以从父视图模型为 chldViwmodel 的 CanExecute 分配真/假吗?...或者..我可以向子视图模型添加一个条件吗?可以从父视图模型执行 preducate ?跨度>
    猜你喜欢
    • 2021-04-21
    • 2020-05-22
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多