所以这就是我目前做:如何使用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