2
我是RX的新手,我試圖將它適配到我的WinForms應用程序。 (Un?)幸運的是,我使用MVP模式,其中View是從任何特定的實現(例如WinForms)中抽象出來的。WinForms中的RX和Model-View-Presenter
當RX友好型產生新的價值,主持人把它買走,嘗試更新視圖。問題是我無法觀察主線程,因爲我沒有引用WinForms控件。
我發現了一些解決方案,但都沒有看上去有對我說:
- 在視圖中創建一個控件屬性,這樣我可以在上面看到。
- 使用Control.Invoke內部屬性setter它們通過演示
- 修改創建一個類似的擴展方法:
:
public static IObservable<T> ObserveOn<T>(this IObservable<T> observable, IMyView view)
{
var control = (Control)view;
return observable.ObserveOn(control);
}
是否有處理這個的好方法?
編輯:我發現了另一個解決方案,我最喜歡的:
其中NuGet包中包含的擴展方法:
然後,你可以爲實現您的
ObserveOn(observable, view)
擴展方法?我找不到它。 – dzendras我不是100%確定。我認爲'Rx-WPF',儘管我認爲你只需要引用'System.Reactive.Windows.Threading.dll'。 – Brandon
「view.Scheduler」解決方案看起來不錯。不過,我找到了另一種方法(請參閱編輯)。你怎麼看呢? – dzendras