小编Jer*_*yer的帖子

UWP/C#:ObservableCollection 就地排序(无滚动)

在 UWP 应用程序中,我试图对ObservableCollection绑定到 a 的 a进行排序ListView- 因此collection.OrderBy(..)(创建一个新集合)不是一个选项。

到目前为止,我使用了这种扩展方法:

public static void Sort<TSource, TKey>(this 
ObservableCollection<TSource> source, Func<TSource, TKey> keySelector)
{
    List<TSource> sortedList = source.OrderBy(keySelector).ToList();
    source.Clear();
    foreach (var sortedItem in sortedList)
    {
        source.Add(sortedItem);
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,通过这种方式,当前的“滚动偏移”被重置, source.Clear()并且相应的ListView滚动一直回到顶部 - 这是非常糟糕的用户体验。

有任何想法吗?

c# sorting observablecollection uwp

2
推荐指数
1
解决办法
1011
查看次数

标签 统计

c# ×1

observablecollection ×1

sorting ×1

uwp ×1