Я не знаю синтаксис в VB, но я думаю, что он должен быть примерно таким же. Вот это в C #:
var border = VisualTreeHelper.GetChild(myDataGrid, 0) as Decorator;
if (border != null)
{
var scrollViewer = border.Child as ScrollViewer;
scrollViewer.ScrollToTop();
}
Обычно первым визуальным дочерним элементом DataGrid является его декоратор, а дочерним элементом декоратора является ScrollViewer. Из ScrollViewer вы можете управлять тем, какие элементы отображаются в dataGrid.
О ... А VisualTreeHelper поможет вам перемещаться от одного визуального элемента к следующему внутри или снаружи текущего элемента, в котором вы находитесь. Я думаю, это в System.Windows.Media.
Надеюсь, это помогло. Приветствия
Редактировать: еще одну вещь, которую я забыл упомянуть, прежде чем опубликовать это ...
Возможно, вам придется переопределить метод OnSorting в DataGrid.
Так что в некотором вашем производном классе от DataGrid, который будет реализовывать эту новую функциональность, у вас будет это переопределение.
protected override void OnSorting(DataGridSortingEventArgs eventArgs)
{
base.OnSorting(eventArgs);
var border = VisualTreeHelper.GetChild(myDataGrid, 0) as Decorator;
if (border != null)
{
var scrollViewer = border.Child as ScrollViewer;
scrollViewer.ScrollToTop();
}
}