我想我錯過了綁定和響應式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