在我的WPF窗口中DataGrid。DataGrid从DataTable加载数据,如下所示:gridData.DataContext = dataTable一切正常,DataGrid由“数据表”中的“存储过程”中的数据填充。取决于数据的种类,DataGrid的列具有不同的宽度,我想在数据网格填充数据后获得此宽度。我必须处理哪个事件?我试过DataContextChanged,Loaded,AutoGenratedColumns,SourceUpdated-但他们似乎之前调用DataGrid由数据填满。有什么办法吗?
2 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
您可以使用几种方法来捕捉DataGrid的ItemsSource发生变化的时刻:
使用DependencyPropertyDescriptor:
DependencyPropertyDescriptor itemsSourcePropertyDescriptor = DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty, typeof(DataGrid));
itemsSourcePropertyDescriptor.AddValueChanged(dataGrid1, OnDataGridItemsSourceChanged);
private void OnDataGridItemsSourceChanged(object sender, EventArgs e) {
}
创建一个DataGrid后代并重写OnItemsSourceChanged方法
- 2 回答
- 0 关注
- 233 浏览
添加回答
举报
0/150
提交
取消