C# 使用ReactiveUI监听复杂对象更改的最佳方式是什么?

C# 使用ReactiveUI监听复杂对象更改的最佳方式是什么?,c#,reactiveui,C#,Reactiveui,例如,复杂对象有一个对象集合 public class MyClass { public string Name { get;set;} public string Description {get;set;} } public class MyViewModel { public ObservableCollection<MyClass> MyClasses {get;set;} } 公共类MyClass { 公共字符串名称{get;set;} 公

例如,复杂对象有一个对象集合

public class MyClass
{ 
    public string Name { get;set;}

    public string Description {get;set;}
}

public class MyViewModel
{
    public ObservableCollection<MyClass> MyClasses {get;set;}
}
公共类MyClass
{ 
公共字符串名称{get;set;}
公共字符串说明{get;set;}
}
公共类MyViewModel
{
公共ObservableCollection MyClass{get;set;}
}
我想创建一个可观察的,并知道MyClasses集合项中的一项何时发生了更改(名称或描述)。

请查看

简言之:

1) 使用
ReactiveList
而不是
observeCollection
,并将
ChangeTrackingEnabled
设置为true:

// in MyViewModel constructor
this.MyClasses = new ReactiveList<MyClass>()
{
    ChangeTrackingEnabled = true,
};
3) 使用列表的
ItemChanged
属性

this.MyClasses.ItemChanged.Subscribe(_ => Console.WriteLine("Changed!"))
this.MyClasses.ItemChanged.Subscribe(_ => Console.WriteLine("Changed!"))