如何使用 ReactiveUI 从 CommandParameter 中确定?

我可以创建一个这样的命令来检查我的视图模型的某些属性是否可以执行:

AddNewSectionCommand = ReactiveCommand
    .CreateFromTask(() => AddNewSectionAsync(NewSectionTitle),
                    this.WhenAny(x => x.NewSectionTitle, x => !string.IsNullOrWhiteSpace(x.Value)));

是否也可以为CommandParameter我通过 WPF 传入,如果,如何?因为有时我直接想用 UI 中的东西作为命令的参数,但也想在之前检查有效性。到目前为止,我必须通过将值绑定到视图模型属性并使用上面的方法来做到这一点,这会使我的视图模型与许多多余的东西杂乱无章。


子衿沉夜
浏览 100回答 1
1回答

慕尼黑的夜晚无繁华

不,canExecute 没有 CommandParameter。vm 属性路由是要走的路。所有 ReactiveUI “入门”类型的示例都一直使用这种方法(例如用户名/密码),这是有道理的,因为 vm 应该负责确定可执行性。主要原因之一是单元测试要容易得多。所以我觉得添加到虚拟机中的额外属性非常值得,而且一点也不多余。
打开App,查看更多内容
随时随地看视频慕课网APP