2010-11-05 53 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下。