2017-08-24 9 views
0

ReactiveListで変更されたフィールドに登録する方法はありますか?ReactiveUI ReactiveListのプロパティ変更を購読する

public class A 
{ 
     public SomeOtherClass Prop1 { get; set; } 
     public SomeOtherClass Prop2 { get; set; } 
} 

そしてViewModel:このリストはDataGridにバインドされ

public class MyViewModel 
{ 
    private ReactiveList<A> elements; 

    public MyViewModel() 
    { 
     elements = new ReactiveList<A>(); 
    } 
} 

は、私はクラスを持っているとしましょう。私がしたいことはWhenAnyValueのようなものですが、いずれのAでもelementsProp1またはProp2が変更されたときです。

どうすればよいですか?

答えて

3

あなたがtrueにReactiveList<T>ChangeTrackingEnabledプロパティを設定し、あなたがReactiveList<T>ItemChangedを購読することができProp1Prop2プロパティのセッターでPropertyChangedイベントを発生させた場合:Aクラスという

public MyViewModel() 
{ 
    elements = new ReactiveList<A>() { ChangeTrackingEnabled = true }; 
    elements.ItemChanged.Subscribe(args => 
    { 
     A a = args.Sender; 
     string changedProperty = args.PropertyName; 
    }); 
} 

注意INotifyPropertyChangedインターフェイスを実装する必要があります。

関連する問題