Добавление события прокрутки в DataGrid - PullRequest
6 голосов
/ 07 сентября 2011

У меня есть DataGrid, определенный как часть UserControl:

<DataGrid x:Name="dtGrid"  AutoGenerateColumns="False" 
            VirtualizingStackPanel.IsVirtualizing="True"                                       
            VirtualizingStackPanel.VirtualizationMode ="Standard"
              EnableColumnVirtualization="True"
              EnableRowVirtualization="True"
            ScrollViewer.IsDeferredScrollingEnabled="True"
            CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True"
             ItemsSource ="{Binding}" Block.TextAlignment="Center"
             AlternatingRowBackground="#F1F1F1" RowBackground="White"
              CanUserAddRows="False" CanUserDeleteRows="False" FrozenColumnCount="1"
               GridLinesVisibility="None" >
    </DataGrid>

Я хотел бы добавить событие, когда пользователь перетаскивает объект горизонтально в DataGrid, он обновляет другую мою диаграмму. Может кто-нибудь указать мне направление, чтобы начать это? Спасибо.

Ответы [ 2 ]

16 голосов
/ 07 сентября 2011

Если я правильно понимаю ваш вопрос, вы хотите узнать, когда пользователь прокрутил DataGrid по горизонтали.Это можно сделать с помощью прикрепленного события ScrollViewer.ScrollChanged.

Xaml

<DataGrid x:Name="dtGrid"
          ScrollViewer.ScrollChanged="dtGrid_ScrollChanged"
          ... />

Код позади

private void dtGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    if (e.HorizontalChange != 0)
    {
        // Do stuff..
    }
}
3 голосов
/ 07 сентября 2011

Если под «перетаскиванием по горизонтали» вы подразумеваете «прокручивание по горизонтали», то вы можете использовать событие ScrollViewer.ScrollChanged. ScrollChangedEventArgs содержит такие свойства, как HorizontalOffset и HorizontalChange.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...