ReactiveUI 订阅 ReactiveList 中的 属性 变化
ReactiveUI subscribe to property change in ReactiveList
有什么方法可以订阅 ReactiveList
中更改的任何字段?
假设我有 class:
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 中发生更改时
有什么办法吗?
如果您将 ReactiveList<T>
的 ChangeTrackingEnabled
属性 设置为 true 并在 Prop1
和 [= 的设置器中引发 PropertyChanged
事件您可以订阅 ReactiveList<T>
的 ItemChanged
的 15=] 个属性:
public MyViewModel()
{
elements = new ReactiveList<A>() { ChangeTrackingEnabled = true };
elements.ItemChanged.Subscribe(args =>
{
A a = args.Sender;
string changedProperty = args.PropertyName;
});
}
注意 A
class 必须实现 INotifyPropertyChanged
接口。
有什么方法可以订阅 ReactiveList
中更改的任何字段?
假设我有 class:
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
.
有什么办法吗?
如果您将 ReactiveList<T>
的 ChangeTrackingEnabled
属性 设置为 true 并在 Prop1
和 [= 的设置器中引发 PropertyChanged
事件您可以订阅 ReactiveList<T>
的 ItemChanged
的 15=] 个属性:
public MyViewModel()
{
elements = new ReactiveList<A>() { ChangeTrackingEnabled = true };
elements.ItemChanged.Subscribe(args =>
{
A a = args.Sender;
string changedProperty = args.PropertyName;
});
}
注意 A
class 必须实现 INotifyPropertyChanged
接口。