上次介绍了数据绑定到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绑定相对简单多了。