2010-11-05 46 views
0

让我从开始说我以前没有用过WPF或Silverlight,除了在2009年做一个简单的视图教程之外,我的唯一的例外是...WPF TreeView,知识库,分层数据和WPF新手

我想要做的是显示一个树状视图,其中包含根级别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; } 
} 

的项目来自一系列存储库,他们没有在任何种类的对象本身子集合,所以通话,让他们 需要在这些存储库上进行。

理想情况下,我想了解如何使用MVVM模式......但任何帮助/示例都将不胜感激!

感谢,
基隆

回答

2

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

<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该转换DataStoreTypeIEnumerable<DataStoreEntry>的放它在资源的名称TypeToEntriesConverter下。