要解决“绑定到扩展ObservableCollection的类会中断通知”的问题,你可以使用ObservableCollection的派生类,例如ReactiveList,该类可以提供更强大的通知功能。
下面是一个使用ReactiveList的代码示例:
using ReactiveUI;
using System;
using System.Reactive.Linq;
public class MyViewModel : ReactiveObject
{
private ReactiveList _items;
public MyViewModel()
{
_items = new ReactiveList();
// 监听集合变化事件
_items.ItemChanged
.Where(change => change.PropertyName == "SomeProperty")
.Subscribe(change =>
{
// 处理集合元素的变化
Console.WriteLine($"Item {change.Sender} changed");
});
}
public ReactiveList Items
{
get { return _items; }
set { this.RaiseAndSetIfChanged(ref _items, value); }
}
}
在这个示例中,我们创建了一个名为MyViewModel的类,它包含一个ReactiveList
你可以在其他类中绑定到MyViewModel的Items属性,并在集合元素变化时触发通知。这样,无论是添加、删除还是修改集合中的元素,都会得到适当的通知。
请注意,为了使用ReactiveList,你需要安装ReactiveUI NuGet包。