【发布时间】:2020-10-09 09:17:22
【问题描述】:
我正在使用 Reactive DynamicData 对我的集合进行排序并更新 WPF UI。我可以轻松应用一种。问题是如何让物品恢复到原来的顺序?我在 DoSort() 中发送什么以便它返回到未排序的原始顺序?
IObservable<IChangeSet<T>> set;
Subject<IComparer<T>> _sorting;
Subject<Unit> _resorting;
ReadOnlyObservableCollection<T> _itemset;
private SortExpressionComparer<T> _currentSort;
private void DoSort(IComparer<T> sort)
{
_sorting?.OnNext(sort);
//Resort();
}
public void Resort()
{
_resorting?.OnNext(Unit.Default);
}
public ReadOnlyObservableCollection<T> ItemSet()
{
if (_itemset is null)
{
_sorting = new Subject<IComparer<T>>();
_resorting = new Subject<Unit>();
set.Sort(_sorting, resort: _resorting).ObserveOnDispatcher().Bind(out var list).Subscribe();
_itemset = list;
DefaultSort();
}
return _itemset;
}
【问题讨论】:
标签: wpf reactive dynamic-data