ReactiveUI订阅ReactiveList中的属性更改

时间:2017-08-24 12:18:14

标签: c# wpf reactiveui

有任何方法可以订阅ReactiveList中更改的任何字段吗?

让我说我上课了:

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

ViewModel

public class MyViewModel
{
    private ReactiveList<A> elements;

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

此列表绑定到DataGrid。我想要做的是类似WhenAnyValueProp1Prop2elements中的任何A中更改。

有什么办法吗?

1 个答案:

答案 0 :(得分:4)

如果您将ChangeTrackingEnabled的{​​{1}}属性设置为true,并在ReactiveList<T>PropertyChanged属性的设置者中提升Prop1事件,则可以订阅Prop2的{​​{1}}:

ItemChanged

请注意,ReactiveList<T>类必须实现public MyViewModel() { elements = new ReactiveList<A>() { ChangeTrackingEnabled = true }; elements.ItemChanged.Subscribe(args => { A a = args.Sender; string changedProperty = args.PropertyName; }); } 接口。