有任何方法可以订阅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
。我想要做的是类似WhenAnyValue
但Prop1
或Prop2
在elements
中的任何A中更改。
有什么办法吗?
答案 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;
});
}
接口。