WPF: TreeView控制元件 獲取選中的文字節點內容
同大家一樣,在使用TreeView控制元件時,遇到了這個問題。上網也查了一些資料,但都不是太有效。經摸索問題解決了。過程說明如下:
TreeView控制元件的資料採取模板,採用MVVM模式,直接繫結給資料來源。如下:
<TreeView Name="tvDepartment" Margin="5,4" Background="{StaticResource PanelContentBgReflact}"
BorderThickness="2" BorderBrush="{StaticResource Brush_HeaderBackground}"
ItemsSource="{Binding Path=TreeItemsSource}" TreeViewItem.Selected="tvDepartment_Selected">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:TreeViewDataModel}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" >
<Image VerticalAlignment="Center" Source="{Binding Path=Icon}"></Image>
<TextBlock Text="{Binding Path=Name}" ToolTip="{Binding Path=ToolTip}" Tag="{Binding Children}" FontSize="14" Foreground="Black"></TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
後臺Selected事件如下:
如上,問題即搞定。private void tvDepartment_Selected(object sender, RoutedEventArgs e) { TreeViewItem tvi = e.OriginalSource as TreeViewItem; var model = tvi.Header as TreeViewDataModel; //樹節點的資料模型 if (model != null) DdbTree.Content = model.Name; //此句最為關鍵,獲取選中節點的內容 }