iva*_*tpr 3 c# wpf wpf-controls wpfdatagrid attached-properties
可以将WPF DataGrid类(不是Windows窗体DataGrid!)设置为在没有外部ScrollViewer的情况下自动处理滚动,并且可以通过编写XAML 来为控件的内部滚动条注册事件处理程序:
<DataGrid ScrollViewer.ScrollChanged="dGrid_ScrollChanged" />
Run Code Online (Sandbox Code Playgroud)
如果我错了,请纠正我,但在这种情况下,内部ScrollViewer似乎是某种未记录的附加属性.ScrollViewer不是DataGrid的公共字段,您将在DataGrid文档中找不到ScrollViewer或ScrollChanged事件的引用.换句话说,干脆myDataGrid.ScrollViewer.ScrollChanged += dGrid_ScrollChanged就行不通.
所以我的问题是,如何在运行时为此ScrollChanged事件添加或删除事件处理程序?我试图理解这里发生的事情,因为我正试图解决问题,所以解释越多越好.
尝试在你的代码后面使用UIElement的AddHandler和RemoveHandler -
dg.AddHandler(ScrollViewer.ScrollChangedEvent, new ScrollChangedEventHandler(dg_ScrollChanged));
dg.RemoveHandler(ScrollViewer.ScrollChangedEvent, new ScrollChangedEventHandler(dg_ScrollChanged));
Run Code Online (Sandbox Code Playgroud)
由于ScrollViewer不是dataGrid的依赖属性,因此需要使用AddHandler进行挂钩.就像你不能像这样设置Grid.RowSpan dg.Grid.RowSpan = 2
你必须设置类似的附加属性dg.SetValue(Grid.RowSpanProperty, 2)
与你需要挂钩附加属性的事件.
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |