Category / Section
How to get the full path of selected TreeViewItemAdv of the TreeViewAdv?
1 min read
At present there is no direct option retrieve the path of TreeViewItemAdv. It is possible to retrieve the path of selected TreeViewItemAdv by handling SelectedItemChanged event and using VisualTreeHelper.
The following code demonstrates the same.
XAML
<syncfusion:TreeViewAdv Name="treeViewAdv" > <syncfusion:TreeViewItemAdv Name="treeViewItemAdv" Header="Marital Status"> <syncfusion:TreeViewItemAdv Header="Single"> <syncfusion:TreeViewItemAdv Header="Student"/> <syncfusion:TreeViewItemAdv Header="Exployee"/> <syncfusion:TreeViewItemAdv Header="Businessman"/> </syncfusion:TreeViewItemAdv> <syncfusion:TreeViewItemAdv Header="Married"/> <syncfusion:TreeViewItemAdv Header="Married with Children"/> </syncfusion:TreeViewItemAdv> <syncfusion:TreeViewItemAdv Header="Baby Vaccines"> <syncfusion:TreeViewItemAdv Header="Hepatitis B"/> <syncfusion:TreeViewItemAdv Header="Tetanus"/> <syncfusion:TreeViewItemAdv Header="Polio"/> <syncfusion:TreeViewItemAdv Header="Measles"/> </syncfusion:TreeViewItemAdv> <syncfusion:TreeViewItemAdv Header="Country Information"> <syncfusion:TreeViewItemAdv Header="Canada"/> <syncfusion:TreeViewItemAdv Header="France"/> <syncfusion:TreeViewItemAdv Header="Germany"/> <syncfusion:TreeViewItemAdv Header="UK"/> <syncfusion:TreeViewItemAdv Header="USA"/> </syncfusion:TreeViewItemAdv> </syncfusion:TreeViewAdv>
C#
public MainWindow() { InitializeComponent(); treeViewAdv.SelectedItemChanged += TreeViewAdv_SelectedItemChanged; } /// <summary> /// Invoked when the SelectedItem changed /// </summary> private void TreeViewAdv_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { MessageBox.Show("Selected Item Path: " + GetFullPath((treeViewAdv.SelectedTreeItem as TreeViewItemAdv))); } /// <summary> /// To get the full path of the TreeViewItemAdv /// </summary> public string GetFullPath(TreeViewItemAdv node) { if (node == null) throw new ArgumentNullException(); var result = Convert.ToString(node.Header); for (var i = GetParentItem(node); i != null; i = GetParentItem(i)) result = i.Header + "\\" + result; return result; } /// <summary> /// To get the parent of the item /// </summary> static TreeViewItemAdv GetParentItem(TreeViewItemAdv item) { for (var i = VisualTreeHelper.GetParent(item); i != null; i = VisualTreeHelper.GetParent(i)) if (i is TreeViewItemAdv) return (TreeViewItemAdv)i; return null; }
Sample: TreeViewAdvSample