ReactiveUI 和 Xaml 绑定到 Observables - 它什么时候起作用?

ReactiveUI and Xaml bindings to Observables - When does it work?

让我们有:

绑定 A

<Buton IsEnabled="{Binding ButtonCommand.CanExecute}"/>

绑定B

<ProgressRing IsActive="{Binding ButtonCommand.IsExecuting}"/>

我注意到绑定 A 有效,而绑定 B 无效。 我想知道为什么?

ps:我不是在问如何使用 ObservableAsPropertyHelper

进行绑定

更新

A和B都一致不工作(我们应该使用OPAH)。 事实上,当我说方法 A 有效时,我错了。 谢谢 @Adrian 坚持这一点。

的确,在案例A中,我的按钮命令也被绑定了:

<Button Command="{Binding ButtonCommand}" IsEnabled="{Binding ButtonCommand.CanExecute}"/>

我不知道,但我的 ReactiveCommandCanExecute 直接影响了我的 Button.IsEnabled 属性。因此我错误地认为我观察到的行为是由于我绑定了 IsEnabled.

你应该在后面的代码中这样做:

this.WhenActivated(d=> 
{
  d(this.BindCommand(ViewModel, vm => vm.ButtonCommand, v => v.ButtonA));
 d(this.WhenAnyObservable(v => v.ViewModel.ButtonCommand.IsExecuting).BindTo(this, v => v.ProgressRing.IsActive));
}

绑定A和绑定B无效。

绑定 A 似乎有效,因为当您将 ReactiveCommand 与控件绑定时,当命令执行 IsEnabled 时,控件的 属性 会受到命令执行的影响。

任何想知道内部的人 here 是代码

问候。