2011-01-26 12 views
1

すべてのリストをフォルダとともにWPFツリービューに表示したい。WPFツリービューでsharepointのリストとフォルダを表示する

リストはうまく表示されますが、フォルダは表示されません(私は1レベルのツリービューしか持っていません)。

は、これは私がリストやフォルダを取得しています方法です:私は私のツリービューのItemsSourceにlistsを追加してい

ListCollection lists = site.Lists; 
       IEnumerable<SP.List> listsCollection = 
        context.LoadQuery(
           lists.Include(l => l.Title, l => l.Id, l => l.RootFolder.Folders.Include(
            Folder => Folder.Name)) 
            .Where(list => !list.Hidden && list.BaseType == BaseType.DocumentLibrary)); 

      context.executeQuery(); 

、これが私のツリービューのXAMLです:

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Lists}"> 
       <TextBlock Text="{Binding Path=Title}" /> 
       <HierarchicalDataTemplate.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Path=Folder}"/> 
             </DataTemplate> 
             </HierarchicalDataTemplate.ItemTemplate> 
            </HierarchicalDataTemplate> 
           </TreeView.ItemTemplate> 

フォルダは、ヘルプを表示されません。

答えて

1

DataTemplateHierarchicalDataTemplateとし、HierarchicalDataTemplate.ItemsSourceをフォルダを保持するプロパティに設定します。

更新:インナーHierarchicalDataTemplateで

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Lists}"> 
     <HierarchicalDataTemplate.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Folders}"> 
       <TextBlock Text="{Binding Path=Folder}"/> 
      </HierarchicalDataTemplate> 
     </HierarchicalDataTemplate.ItemTemplate> 
     <TextBlock Text="{Binding Path=Title}" />            
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

、ルック、サブ項目を取得する責任があるのItemsSourceもあります。

+0

例を追加することができます – Zee99

+0

ありがとう、ほとんどありませんが、まだ、まだ1つのレベルの結果、実際にはリストのフォルダを取得するlist.RootFolder.Folders(フォルダのコレクションです)、 ItemSourceの別の値と内部のHierarchicaldatatemplateのtextblockを入れます。 – Zee99

+0

@ Zee99:はい、これはおそらく問題になります。最初にItemsSourceに集中します。あなたの構造を知らずに試してみてください。ItemsSource = "{Binding RootFolder.Folders}"これはおそらくそれです。 Textblockについては、外部宣言のように、Text = "{Binding Title}"のようなものになると私は想定しています。ちょっと遊んでみてください。 – HCL

0

私はあなたに、ツリービューを管理するためのMVVMのアプローチを強くお勧めします。アプローチはこの非常に良い記事で説明されています: Simplifying the WPF TreeView by Using the ViewModel Pattern

WPFのツリービューはすばやく痛いです... mvvmアプローチは自分のクラスで管理をシフトし、実際は管理が簡単です。

関連する問題