DataGrid, сброс ScrollViewer на левую сторону - PullRequest
0 голосов
/ 21 сентября 2011

Есть ли способ вернуть в горизонтальное положение ScrollViewer DataGrid обратно слева?Я подключил его к другому контролю, где обновляются графики.Было бы хорошо, если бы связанный DataGrid также сбрасывался и имел scrollViewer полностью слева.Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 октября 2015

Я использую это, чтобы убедиться, что первая ячейка выбранной строки видна.

    if (dataGrid.SelectedItem != null)
        dataGrid.ScrollIntoView(dataGrid.SelectedItem, dataGrid.Columns[0]);
0 голосов
/ 21 сентября 2011

Вы не можете получить доступ к ScrollViewer напрямую, но если вы посмотрите на Visual Tree с помощью snoop, вы увидите, что это выглядит как DataGrid, Border, ScrollViewer

enter image description here

Таким образом, чтобы прокрутить DataGrid влево, вы можете использовать следующий метод расширения (или просто использовать обычный метод)

public static class DataGridExtensions
{
    public static void ScrollToLeft(this DataGrid dataGrid)
    {
        Border border = VisualTreeHelper.GetChild(dataGrid, 0) as Border;
        ScrollViewer scrollViewer = border.Child as ScrollViewer;
        scrollViewer.ScrollToLeftEnd();
    }
}

Вызовите его так

dataGrid.ScrollToLeft();
...