mbu*_*ics 4 wpf datagrid datagridcolumn datagridtextcolumn
我以LogicalTreeHelper.GetParent()递归方式使用该方法来查找各种其他WPF元素的根元素.几乎所有东西都可以正常工作,但是DataGridColumn失败了DataGridTextColumn.我发现它DataGridColumn不是逻辑树和视觉树的一部分.我可以以某种方式找到DataGrid它属于(然后从网格中获取根)?
阅读MSDN文档我找不到合适的解决方案.谢谢.
我的代码找到逻辑根:
private DependencyObject FindLogicalRoot(DependencyObject obj)
{
if (obj == null)
return null;
else
{
var parent = LogicalTreeHelper.GetParent(obj);
return parent != null ? FindLogicalRoot(parent) : obj;
}
}
Run Code Online (Sandbox Code Playgroud)
DataGridColumn具有此属性,但它是私有的,因此您必须使用反射来获取它.要么在VisualTree中进行一些搜索,要么将每个DataGrid的Columns与要查找的Column进行比较
public DataGrid GetDataGridParent(DataGridColumn column)
{
PropertyInfo propertyInfo = column.GetType().GetProperty("DataGridOwner", BindingFlags.Instance | BindingFlags.NonPublic);
return propertyInfo.GetValue(column, null) as DataGrid;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2848 次 |
| 最近记录: |