DataGrid отслеживает положение прокрутки как самый верхний элемент. При удалении всех элементов прокрутка DataGrid больше не существует, поскольку элементов нет. Чтобы позиция прокрутки имела какой-либо логический смысл, DataGrid должен содержать хотя бы один элемент.
Проблема, вероятно, связана с тем фактом, что при использовании ObservableCollection при вызове clear он вызывает событие CollectionChanged
с EventArgs.Action, установленным в NotifyCollectionChangedAction.Reset
, чтобы не удалять. Если вы используете Clear, возможно, вам потребуется реализовать собственную коллекцию INotifyCollectionChanged
, которая никогда не выдаст NotifyCollectionChangedAction.Reset
eset.