代码之家  ›  专栏  ›  技术社区  ›  Kieron

WPF Treeview、存储库、分层数据和WPF新手

  •  0
  • Kieron  · 技术社区  · 14 年前

    我要做的是显示一个树状视图,在根级别包含 DataStoreType 阶级,在他们下面 DataStoreEntry 课程…但按需加载。

    public class DataStoreType
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
    }
    
    public class DataStoreEntry
    {
        public int Id { get; set; }
        public int TypeId { get; set; } // Link back to the parent DataStoreType
        public string Name { get; set; }
        public DateTime Imported { get; set; }
        public DateTime? AvailableFrom { get; set; }
        public string Description { get; set; }
    }
    

    这些项来自一系列存储库,它们不在对象本身的任何子集合中,因此调用来获取它们 需要在这些仓库上制作。

    谢谢,
    基隆

    2 回复  |  直到 14 年前
        1
  •  3
  •   Kieron    14 年前

    在这里找到了适合我需要的完美教程/示例。

    http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

        2
  •  2
  •   Nicolas Repiquet    14 年前

    这不是一个完整的答案,只是一个让你开始的提示。

    <TreeView ItemsSource="{Binding DataStoreTypes}">
      <TreeView.Resources>
        <HierarchicalDataTemplate
          DataType="{x:Type DataStoreType}"
          ItemsSource="{Binding Converter={StaticResource TypeToEntriesConverter}}">
          <TextBlock Text="{Binding}"/>
        </HierarchicalDataTemplate>
        <DataTemplate
          DataType="{x:Type DataStoreEntry}">
          <TextBlock Text="{Binding}"/>
        </DataTemplate>
      </TreeView.Resources>
    </TreeView>
    

    现在,您所要做的就是实现一个IValueConverter来转换 DataStoreType 给一个 IEnumerable<DataStoreEntry> TypeToEntriesConverter类型 .