我有一個包含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 –