我有一個ObservableCollection,需要爲特定項目引用。如果項目不存在,我需要通過Reactive Extensions來監控它是否出現在項目中,但是在設置聲明時需要一些幫助。我仍然不熟悉所有不同的Linq擴展是如何工作的,所以我不知道如何做到這一點。任何人都可以將我指向正確的方向嗎?使用Rx(Reactive Extensions)觀察ObservableCollection中的特定項目
爲了更好地說明,我需要像下面這樣:
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 ...但我仍然對如何在滿足兩個條件時獲得該值的等待感到困惑。
ObservableCollection現在是一種不幸的命名選擇:(這是在做Rx訓練時碰到的道路 –
看起來就像我需要的那樣 – Random
我沒有意識到ReactiveUI會成爲如此龐大的庫。看起來不錯,我只是希望在幾個月前知道它,這個時候它可能不適合我的項目。所以,雖然我希望將來可以使用它,但這是「一個」的答案,我需要取消選擇它作爲「接受」的答案。 – Random