Да, элементы можно прокручивать в поле зрения, если источником элемента является PagedCollectionView
. Я использую оба метода прокрутки группы, которые вы описываете, и прокручиваю текущий выбранный элемент в поле зрения. Для этого у меня есть вспомогательный метод, который использует диспетчер для вызова операции следующим образом:
private void ScrollCurrentSelectionIntoView()
{
this.dataGrid.Dispatcher.BeginInvoke(() =>
{
this.dataGrid.ScrollIntoView(
this.dataGrid.SelectedItem,
this.dataGrid.CurrentColumn);
});
}
Я использовал BeginInvoke
, потому что в противном случае вызов ScrollIntoView
завершился бы неудачно при вызове непосредственно из обработчика события (предположительно потому, что DataGrid
не обновил должным образом свое состояние для обрабатываемого события). Этот подход гарантирует, что текущая обработка события завершается должным образом перед вызовом прокрутки.