ObservibaleCollection<MyObj>
に含まれるクラスのコレクションがあり、MyObjにはINotifyPropertyChanged
が実装されていますが、linq経由でコレクション内のプロパティを参照する独自のコレクションを作成するプロパティが必要ですコレクションの変更と、そのコンテンツのlinqバインドされたプロパティのいずれかを更新して更新します。Linot経由でそれを参照するプロパティを更新する
私のクラスMyObj
にはIsVisible
というプロパティが含まれています。私は独自のINotifyPropertyChangedを実装しているプロパティで、IsVisible == trueのMyObjのリストを取得し、MyObjのコレクションが変更されているかIsVisibleプロパティがidに関係なく最新の状態に保たれるようにします。
は、それぞれの子MyObj.IsVisibleプロパティに取り付け、その後、単に直接収集変わったイベントにアタッチとすることなく、このことは可能ですか? linotを通してINotifyをバブルアップさせる方法はありますか?
public class MyObj:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public bool IsVisible
{
get { return _IsVisible; }
protected set { if (value != _IsVisible) { _IsVisible= value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsVisible")); } }
}
private bool _IsVisible;
}
public class Foo
{
ObservableCollection<MyObj> myObjs = new ObservableCollection<MyObj>();
ObservableCollection<MyObj> myVisibleObjs {
get{
return myObjs.where(o => o.IsVisible);
}
}
}
私は頼んでいることを意味します。
その他のライブラリ... – Aron
! – Wobbles