“TreeView”是怎样绑定资源的???看不懂啊
“TreeView”是怎样绑定资源的???看不懂啊。
XAML:
        <UserControl.Resources>
         <my1:RadTreeViewSampleData x:Key="DataSource"/>
        问题一:“RadTreeViewSampleData”是一个“.cs  类”,定义在资源里面是什么意思???是不是这样定义,就可以不用再“Binding”类了,直接绑定资源就好了,是吧???
         <DataTemplate x:Key="Team">
             <TextBlock Text="{Binding Name}" />
         </DataTemplate>
        问题二:“DataTemplate”是“TreeView”的“Item”的数据模板对吧???它为什么只作用于最后一级子节点(第三级)呢???
         <telerik:HierarchicalDataTemplate   x:Key="Division" ItemTemplate="{StaticResource Team}"
            ItemsSource="{Binding Teams}">
             <TextBlock Text="{Binding Name}" />
         </telerik:HierarchicalDataTemplate>
       问题三:“HierarchicalDataTemplate” 的作用是什么呢???  不用“子节点”逐级递归绑定,只要使用“Hierarchical”这一层子节点就绑定了,Why???
       问题四:“StaticResource”是什么意思???“Team”是一个“.cs 类”,为什么可以作为资源???
        <telerik:HierarchicalDataTemplate x:Key="League" ItemTemplate="{StaticResource Division}"
            ItemsSource="{Binding Divisions}">
             <TextBlock Text="{Binding Name}" />
         </telerik:HierarchicalDataTemplate>
     </UserControl.Resources>
     <Grid x:Name="LayoutRoot" Background="White">
         <telerik:RadTreeView IsOptionElementsEnabled="True" ItemsOptionListType="CheckList"  
        ItemsSource="{Binding Source={StaticResource DataSource}, Path=LeaguesDataSource}"
        ItemTemplate="{StaticResource League}" IsLineEnabled="True"  />
        问题五:“Binding Source={StaticResource DataSource}, Path=LeaguesDataSource”这一句什么意思???     “Source”表示什么?   “Path”表示什么?         “DataSource”表示的是“RadTreeViewSampleData  类”,   “LeaguesDataSource”是“RadTreeViewSampleData  类”的一个属性。
     </Grid>
       问题六:这种数据绑定方式,没有使用“递归算法”,也没有使用“DataContext”。它的核心思想是什么呢???
.CS后台代码:                     
public class RadTreeViewSampleData
     {
         public RadTreeViewSampleData()
         {
             this.InitializeLeaguesDataSource();
         }
         public ObservableCollection<League> LeaguesDataSource
         {
             get;
             set;
         }
         private void InitializeLeaguesDataSource()
         {
             this.LeaguesDataSource = new ObservableCollection<League>();
             League l;
             Division d;
             this.LeaguesDataSource.Add(l = new League("XX大学"));
             l.Divisions.Add((d = new Division("X1校区")));
             d.Teams.Add(new Team("X1楼"));
             d.Teams.Add(new Team("综合楼"));
             d.Teams.Add(new Team("图书馆"));
             d.Teams.Add(new Team("逸夫楼"));
             d.Teams.Add(new Team("南楼"));
             l.Divisions.Add((d = new Division("X2校区")));
             d.Teams.Add(new Team("行政中心楼"));
             d.Teams.Add(new Team("能源工程楼"));
             d.Teams.Add(new Team("X2图书馆"));
             d.Teams.Add(new Team("教学A楼"));
             d.Teams.Add(new Team("教学B楼"));
             l.Divisions.Add((d = new Division("X3