添加项目作为范围并不总是触发 ReactiveList 的 ItemsAdded
Adding items as range doesn't always trigger ItemsAdded for a ReactiveList
我有两个 ReactiveList
,分别是 ListA
和 ListB
。添加到 ListB
的任何项目也会添加到 ListA
:
this
.WhenAnyValue(x => x.ListB)
.Where(x => x != null)
.Subscribe(list =>
{
ListA.AddRange(list);
list
.ItemsAdded
.Subscribe(item => ListA.Add(item), exceptionHandler)
.DisposeWith(Disposables);
})
.DisposeWith(Disposables);
问题在于,当某些 UI 操作触发 ListB.AddRange(items)
时,ListA
仅在 items
的数量较少时才能正确更新。当它是几十个时,ItemsAdded
的 onNext
动作没有被调用(onError
也没有),我不明白为什么。
ReactiveList<T>
已弃用,我们建议使用 DynamicData https://github.com/rolandpheasant/DynamicData
原因是 UI 的优化,当有大量项目时,我们将发出重置。
我有两个 ReactiveList
,分别是 ListA
和 ListB
。添加到 ListB
的任何项目也会添加到 ListA
:
this
.WhenAnyValue(x => x.ListB)
.Where(x => x != null)
.Subscribe(list =>
{
ListA.AddRange(list);
list
.ItemsAdded
.Subscribe(item => ListA.Add(item), exceptionHandler)
.DisposeWith(Disposables);
})
.DisposeWith(Disposables);
问题在于,当某些 UI 操作触发 ListB.AddRange(items)
时,ListA
仅在 items
的数量较少时才能正确更新。当它是几十个时,ItemsAdded
的 onNext
动作没有被调用(onError
也没有),我不明白为什么。
ReactiveList<T>
已弃用,我们建议使用 DynamicData https://github.com/rolandpheasant/DynamicData
原因是 UI 的优化,当有大量项目时,我们将发出重置。