【发布时间】:2011-08-31 17:08:24
【问题描述】:
我有一个 ObservableCollection,我需要为特定项目引用它。如果该项目不存在,我需要通过 Reactive Extensions 监视它是否/何时出现项目,但在设置语句时需要一些帮助。我仍然不熟悉所有不同的 Linq 扩展是如何工作的,所以我不确定如何做到这一点。谁能指出我正确的方向?
为了更好地说明,我需要如下所示:
public class myitem :INotifyPropertyChanged
{
private string _key;
private string _value;
public string key
{
get { return _key; }
set { _key = value; NotifyPropertyChanged("key"); }
}
public string myvalue
{
//proper getter/setter, blah, blah
}
}
ObservableCollection<myitem> _collection = mycollection;
var x = Observable.FromEvent<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
h => new NotifyCollectionChangedEventHandler(h),
h => _collection.CollectionChanged += h,
h => _collection.CollectionChanged -= h);
string keywaitingfor = "thiskey";
string valuewaitingfor = x.Where(xx => xx.key == keywaitingfor).First().myvalue;
这不完全是我的场景,但希望你能看到我想要做什么。 ObservableCollection 可能不包含要开始的项目,并且属性值异步传入。我知道最后一行是不正确的,我需要在 lambda 中的类 PropertyChanged 事件上有一个 Observable ......但我仍然对如何在满足两个条件时等待该值感到困惑。
【问题讨论】:
标签: c# linq observablecollection system.reactive