我正在嘗試撰寫可以接受Key.Down并Key.Up更改TreeView使用多個HierarchicalDataTemplates 的選擇的代碼。在 a 的子節點中TreeViewItem,我需要獲取它的父節點,以便確定應該選擇下一個節點。我注意到它TreeViewItem有一個ParentTreeViewItem屬性,但它設定為內部,因此不公開訪問。還有另一種方法可以模擬如何將 a 的父級TreeViewItem作為 aTreeViewItem嗎?注意:Parent使用時始終為空HierarchicalDataTemplate。提前致謝。

uj5u.com熱心網友回復:
您始終可以使用VisualTreeHelper.GetParent來查找任何父元素:
private bool TryGetVisualParent<TParent>(DependencyObject element, out TParent parent) where TParent : DependencyObject
{
parent = null;
if (element is null)
{
return false;
}
element = VisualTreeHelper.GetParent(element);
if (element is TParent parentElement)
{
parent = parentElement;
return true;
}
return TryGetVisualParent(element, out parent);
}
使用示例
private void OnTreeViewItem_Selcted(object sender, RoutedEventArgs e)
{
var selectedItem = e.OriginalSource as TreeViewItem;
if (TryGetVisualParent(selectedItem, out TreeViewItem parentItem))
{
// Handle 'parentItem'
}
}
uj5u.com熱心網友回復:
使用 TreeViewItem.Parent 屬性,如果父屬性為空,則表示沒有父節點
<TreeView>
<TreeViewItem Header="root">
<TreeViewItem Header="child" Name="child_item"></TreeViewItem>
</TreeViewItem>
</TreeView>


轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/448325.html
上一篇:Html5新增內容標簽
