ツリーからランダムな TreeViewItem が与えられた場合、ノードのルートであるおじいちゃんを取得するにはどうすればよいですか?
これを使用して、子アイテムをクリックしたときにルートを強調表示しています。
private void TreeViewDecode_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
TreeViewItem treeViewItem = GetSexyGrandDaddy(e.OriginalSource as DependencyObject);
...
}
private static TreeViewItem GetSexyGrandDaddy(DependencyObject source)
{
if (source != null && source is TreeViewItem)
{
TreeViewItem root = VisualTreeHelper.GetParent(source) as TreeViewItem;
while (root.Parent != null)
{
root = root.Parent as TreeViewItem;
}
return root as TreeViewItem;
}
return null;
}
編集:更新されたコードはまだ機能しません