我使用LogicalTreeHelper.GetParent()
方法遞歸地查找各種其他WPF元素的根元素。這幾乎適用於所有情況,但DataGridColumn失敗,如DataGridTextColumn
。 我發現DataGridColumn
不是邏輯樹和視覺樹的一部分。我能以某種方式找到它所屬的DataGrid
(然後從網格中獲取根目錄)?查找DataGridColumn的根元素
閱讀MSDN文檔我找不到合適的解決方案。謝謝。
我的代碼,以查找邏輯根:
private DependencyObject FindLogicalRoot(DependencyObject obj)
{
if (obj == null)
return null;
else
{
var parent = LogicalTreeHelper.GetParent(obj);
return parent != null ? FindLogicalRoot(parent) : obj;
}
}
嗨,你好,我能明白爲什麼的DataGridColumn不是視覺或邏輯樹的一部分。 DataGrid.Columns屬性是一個常規屬性,就像TextBlock.Text或任何其他屬性一樣。 DataGrid使用您的列定義也會生成列,但是定義本身不會添加到可視化樹中。我可以問你爲什麼想從DataGridColumn導航到其父項? – ColinE 2010-12-23 11:30:31
我在寫一個MarkupExtension,我需要找到根元素的類型。 – slurmomatic 2010-12-23 12:30:44