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}"/>
我不知道,但我的 ReactiveCommand
的 CanExecute
直接影响了我的 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 是代码
问候。
让我们有:
绑定 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}"/>
我不知道,但我的 ReactiveCommand
的 CanExecute
直接影响了我的 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 是代码
问候。