天天看點

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; //此句最為關鍵,擷取選中節點的内容     
        }
           

         如上,問題即搞定。

繼續閱讀