如何将 ReactiveCommand 与 IObservable 绑定?



我有一个命令(ReactiveCommand(,我想在用户选择列表中的项目时执行此命令。

列表公开了一个可观察IObservable<object>因此每次有新事件发送到此可观察量时,我都想执行我的命令。

我带着这个来的,但它的作用似乎很复杂。

source.ElementSelected
.Cast<Item>()
.SelectMany(ViewModel.ShowDetailsCommand.Execute)
.Subscribe();

我想知道是否有更好的方法可以做到这一点?命令和控件是否存在类似BindCommand的东西?

通常我会拥有你所拥有的,但使用 WhenAnyObservable 或类似的东西。RxUI 中的大多数示例也使用类似的语法将可观察量链接到执行中。

虽然InvokeCommand是一种简化的方法。

https://reactiveui.net/docs/handbook/commands/invoking-commands

否则可能只需要制作自己的扩展方法。

另外,我只想确保指出

InvokeCommand 尊重命令的可执行性。也就是说,如果 命令的 CanExecute 方法返回 false,InvokeCommand 不会 当源可观察值滴答时执行命令。

最新更新