このメソッドを再帰的に使用して、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;
}
}