我有一个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时添加一个事件,它会更新我拥有的另一个图表。有人能指出我的方向来开始这个吗?感谢。
答案 0 :(得分:16)
如果我正确理解了您的问题,您想知道用户何时水平滚动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..
}
}
答案 1 :(得分:3)
如果通过'水平拖动'表示'水平滚动',则可以使用ScrollViewer.ScrollChanged
事件。 ScrollChangedEventArgs
包含HorizontalOffset
和HorizontalChange
等属性。