<HierarchicalDataTemplate x:Key="treeNode" ItemsSource="{Binding Path=LEAVES}" > <DockPanel Margin="-19,0,0,0"> <StackPanel Orientation="Horizontal" Height="20" Background="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=TreeViewItem}, Path=Background}"> <ToggleButton x:Name="Expander" Style="{StaticResource ExpandCollapseToggleStyle}" mce_Style="{StaticResource ExpandCollapseToggleStyle}" IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=TreeViewItem}, Path=IsExpanded}" Visibility="{Binding Path=visibleViewBtn}" Click="Expander_Click" /> <CheckBox x:Name="chb" Margin="0,3,0,0" Visibility="{Binding Path=visibleViewChb}" IsChecked="{Binding Path=IsCheck}" /> <TextBlock x:Name="TreeContent" FontSize="12px" MaxWidth="430" Margin="4,0,0,0" Foreground="Black" TextAlignment="Left" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" ToolTip="{Binding Path=NAME}" ToolTipService.ShowDuration="30000" Text="{Binding Path=NAME}" FontFamily="MS ゴシック, EUDC" /> </StackPanel> </DockPanel> </HierarchicalDataTemplate>
后台使用Datatable创建LEAVES和NAME列,LEAVES中在添加有LEAVES和NAME的DataView的数据,来实现TreeView的树形结构,实现TreeView的数据绑定。
ItemsSource | 获取或设置此数据模板的绑定,该绑定指示是否查找表示数据层次结构中下一级别的集合。 |
还有一种方式实现TreeView的树形结构:
<XmlDataProvider x:Key="xdp" XPath="FileSystem/Folder"> <x:XData> <FileSystem xmlns=""> <Folder Name="Books"> <Folder Name="Programming"> <Folder Name="Windows"> <Folder Name="WPF"></Folder> <Folder Name="WCF"></Folder> <Folder Name="WF"></Folder> </Folder> </Folder> <Folder Name="Tools"> <Folder Name="Development"></Folder> <Folder Name="Designment"></Folder> <Folder Name="Players"></Folder> </Folder> </Folder> </FileSystem> </x:XData> </XmlDataProvider> <TreeView ItemsSource="{Binding Source={StaticResource xdp}}" > <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding XPath=Folder}"> <TextBlock Text="{Binding XPath=@Name}"></TextBlock> </HierarchicalDataTemplate> </TreeView.ItemTemplate> </TreeView>