TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件
TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件。TreeViewItem 可以包含一个或多 TreeViewItem 对象作为后代。TreeView 定义为 TreeViewItem 对象层次结构。
TreeView 可以通过绑定到数据源并使用 HierarchicalDataTemplate 对象填充其树。数据源的示例包括 XmlDataProvider 和 ObservableCollection <T>对象。
一个简单的效果展示
我们先绑定一个简单的xml文件:xml如下
<?xml version="1.0" encoding="utf-8" ?> <Data xmnl=""> <Grade Name="一年级"> <Class Name="甲班"> <Group Name="A组"></Group> <Group Name="B组"></Group> <Group Name="C组"></Group> <Group Name="D组"></Group> </Class> <Class Name="乙班"> <Group Name="A组"></Group> <Group Name="B组"></Group> <Group Name="C组"></Group> <Group Name="D组"></Group> </Class> </Grade> <Grade Name="二年级"> <Class Name="乙班"> <Group Name="A组"></Group> <Group Name="B组"></Group> <Group Name="C组"></Group> <Group Name="D组"></Group> </Class> </Grade> <Grade Name="三年级"> <Class Name="丙班"> <Group Name="A组"></Group> <Group Name="B组"></Group> <Group Name="C组"></Group> <Group Name="D组"></Group> </Class> </Grade> </Data>
然后我们在xaml文件来定义数据模板:
<Window.Resources > <!--数据源--> <XmlDataProvider x:Key="ds" Source="XMLFile1.xml" XPath="Data/Grade"/> <!--年纪模板--> <HierarchicalDataTemplate DataType="Grade" ItemsSource="{Binding XPath=Class}"> <TextBlock Text="{Binding XPath=@Name}"></TextBlock> </HierarchicalDataTemplate> <!--班级模板--> <HierarchicalDataTemplate DataType="Class" ItemsSource="{Binding XPath=Group}"> <RadioButton GroupName="gn" Content="{Binding XPath=@Name}"></RadioButton> </HierarchicalDataTemplate> <!--小组模板--> <HierarchicalDataTemplate DataType="Group" ItemsSource="{Binding XPath=Student}"> <CheckBox Content="{Binding XPath=@Name}"></CheckBox> </HierarchicalDataTemplate> </Window.Resources>
然后现在通过Treeview控件进行绑定即可:
<TreeView ItemsSource="{Binding Source={StaticResource ds}}" Height="122" HorizontalAlignment="Left" Margin="12,46,0,0" Name="listView1" VerticalAlignment="Top" Width="456" />
很简单吧,就那么一下就绑定好了
关于TreeView还有更多用法,这只是简单用法,更多请http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.controls.treeview.aspx