上次介绍了数据绑定到ListBox上,今天我们把数据绑定到TreeView,和Menu上。其实不同点在于DataTemplate。这次不是用DataTemplate了,而是用HierarchicalDataTemplate
这是分层的数据模板,Hierarchical是分层的意思。DataTemplate是数据模板。这样记容易记住吧。
我们还是用上次的数据。
我们来看.xaml
代码<Window.Resources> <ObjectDataProvider x:Key="odp" ObjectType="{x:Type src:LeagueList}"/> <HierarchicalDataTemplate DataType="{x:Type src:League}" ItemsSource="{Binding Path=Divisions}"> <TextBlock Text="{Binding Path=Name}"/> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="{x:Type src:Division}" ItemsSource="{Binding Path=Teams}"> <TextBlock Text="{Binding Path=Name}"/> </HierarchicalDataTemplate> <DataTemplate DataType="{x:Type src:Team}"> <TextBlock Text="{Binding Path=Name}"/> </DataTemplate> </Window.Resources>
这里不要忘了添加自己命名的命名空间src。
HierarchicalDataTemplate 中的DataType是:获取或设置此 DataTemplate 所针对的类型。
ItemsSource是绑定下一层数据类。
TreeView绑定
接下来看TreeView中:
代码 <TreeView Height="200" HorizontalAlignment="Left" Margin="21,75,0,0" Name="treeView1" VerticalAlignment="Top" Width="167" > <TreeViewItem Header="比赛队伍" ItemsSource="{Binding Source={StaticResource odp}}"> </TreeViewItem> </TreeView>
可以按F5运行了。
Menu绑定
代码<Menu Height="23" HorizontalAlignment="Left" Margin="21,20,0,0" Name="menu1" VerticalAlignment="Top" Width="167" > <MenuItem Header="比赛队伍" ItemsSource="{Binding Source={StaticResource odp}}"> </MenuItem> </Menu>
Menu绑定相对简单多了。