复杂对象具有对象的集合,例如
public class MyClass
{
public string Name { get;set;}
public string Description {get;set;}
}
public class MyViewModel
{
public ObservableCollection<MyClass> MyClasses {get;set;}
}
我想创建一个可观察的对象,并知道MyClasses集合项之一(名称或描述)何时已更改。
简而言之:
1)使用ReactiveList
代替ObservableCollection
,并将其设置ChangeTrackingEnabled
为true:
// in MyViewModel constructor
this.MyClasses = new ReactiveList<MyClass>()
{
ChangeTrackingEnabled = true,
};
2)MyClass
应引发PropertyChanged
事件。最简单的方法是使其从ReactiveObject派生:
public class MyClass : ReactiveObject
{
private string _name;
public string Name
{
get { return _name; }
set { this.RaiseAndSetIfChanged(ref _name, value);
}
private string _description;
public string Description
{
get { return _description; }
set { this.RaiseAndSetIfChanged(ref _description, value);
}
}
3)使用ItemChanged
清单的属性
this.MyClasses.ItemChanged.Subscribe(_ => Console.WriteLine("Changed!"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句