WPF DataGrid类(而不是Windows Forms DataGrid!)可以设置自动处理滚动,而无需外部ScrollViewer,并且可以通过编写以下XAML来为控件的内部滚动条注册事件处理程序:
<DataGrid ScrollViewer.ScrollChanged="dGrid_ScrollChanged" />
请纠正我,如果我错了的话,在这种情况下,内部 ScrollViewer 看起来是某种未记录的附加属性。ScrollViewer 不是 DataGrid 的公共字段,因此您在 DataGrid 文档中找不到关于 ScrollViewer 或 ScrollChanged 事件的任何参考。换句话说,简单地执行
myDataGrid.ScrollViewer.ScrollChanged += dGrid_ScrollChanged
是无效的。那么我的问题是,如何在运行时添加或删除此 ScrollChanged 事件的事件处理程序?我试图理解这里发生了什么,尽可能多的解释会更好。