我有一个包含20-50项的列表框。所有项目必须按唯一标识进行排序。 应用排序后,我的列表框在顶部滚动。如何防止呢? 排序功能如何在添加/删除项目时保持listboxitem的位置?
public static void Sort<TSource, TValue>(IList<TSource> source, Func<TSource, TValue> selector) {
for (int i = source.Count - 1; i >= 0; i--) {
for (int j = 1; j <= i; j++) {
TSource o1 = source.ElementAt(j - 1);
TSource o2 = source.ElementAt(j);
TValue x = selector(o1);
TValue y = selector(o2);
var comparer = Comparer<TValue>.Default;
if (comparer.Compare(x, y) > 0) {
source.Remove(o1);
source.Insert(j, o1);
}
}
}
}
您的使用ScollIntoView(项目),如果你发现你想要的东西。或者从ScrollViewer获取ActualHeight –