我想我错过了绑定和响应式UI如何协同工作。反应式用户界面和双向绑定
下面是一个例子。我有这势必双向以可观察到的财产在我的视图模型一个ToggleSwitch:
<ToggleSwitch IsOn="{Binding IsPowered, Mode=TwoWay}"/>
当开关被从关切换 - >在我要执行一段代码,所以我做到以下几点:
this.WhenAnyValue(x => x.IsPowered).Subscribe(isPowered =>
{
await MyService.UpdatePowerStatusAsync(isPowered);
});
这个工作正常,当我切换按钮。但是,假设我在后台线程上执行刷新,并从我的服务器获取IsPowered现在为true(以前为false)的通知。我想通知ToggleSwitch在UI是在正确的状态,所以我设置:
IsPowered = true;
但是,然后触发它调用我的新价值,这是我不想这样做,因为服务WhenAnyValue这在服务中已经是真的了。
无论如何要确保WhenAnyValue只是由于用户输入而被调用吗?喜欢在更新期间退订吗?
从我的阅读,看来MyService.UpdatePowerStatusAsync()应该检查它是否已经设置 – kenny