1
每當我更改ItemsSource(或它觸發集合重置)時,WPF不會將ListView/DataGrid的滾動條位置重置爲頂部。如果有一種很好的手動方式,這沒什麼大不了的,但似乎沒有。重置ItemsSource上的滾動條更改
目前我做的:
ScrollViewer.ScrollToTop();
ScrollViewer.UpdateLayout();
Grid.ItemsSource = Data;
這是造成因爲UpdateLayout請一些閃爍第一重繪控制。
另一種方式是做:
Grid.ItemsSource = Data;
ScrollViewer.ScrollToTop();
這似乎並沒有引起任何閃爍,但由於更改後的ItemsSource滾動位置時,它會導致WPF首先遍歷了錯誤的物品在ItemsSource中,在它獲得正確的項目(偏移量爲0)之前。由於集合是虛擬化的,因此會導致不必顯示的項目的不必要的SQL查詢。
是否有另外一種方法可以不閃爍或首先檢索錯誤的項目?