上次介紹了資料綁定到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綁定相對簡單多了。