所以這就是我目前做:如何使用IObservable <T>作爲WPF源碼綁定到ListBox的源碼?
我有一個WPF列表框當前數據一定到,並通過
public ObservableCollection<string> SourceBinding
{
get;
set;
}
這WPF界源填充有OnCollectionChanged事件處理程序,做以下每當添加新項目時;
ObservableCollection<string> source = new ObservableCollection<String>();
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
NotifyPropertyChanged("NotifyPropertyChanged")
}
我還訂閱到IObservable<string>
流正在處理經由TickHHandler
事件處理程序的每個蜱;
Stream.Subscribe(TickHandler);
TickHandler目前doigng這樣的:
private void TestSubscription(string item)
{
sourceBinding.Add(item)
}
這裏,從Rx流的每個輸出Tick事件中,的ObservableCollection被更新,WPF GUI被通知需要進行的更改。
我會像但是要做到,是列表框直接綁定到我的IObservable<string>
流最好是在XAML。
我假設我不知何故必須使用行爲來公開自定義IObservableItemsSource
屬性綁定IObservable<string>
源消費。我想這將是這個樣子到底:
IObservableItemsSource ="{Binding IObservableSource}"
我知道如何實現的行爲,但我不知道如何開始在XAML創建IObservable<string>
財產的使用,或者如果這甚至有可能!
我的方式離譜嗎?有人可以解釋什麼是最好的實現方式應該是什麼?
謝謝。
綁定不知道關於可觀察到的傑克。你的假設是不正確的 - 你想提供[BindingBase]的實現(https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase(v = vs.110)。 aspx),它確實知道可觀察的是什麼。有一個ReactiveUI框架可以爲你提供一個,但我不確定。我打賭它被稱爲* ObservableBinding *或類似的東西。 – Will