0

私は TreeView を構築しようとしており、次のリンクのように設定しています:

Silverlight と WPF - HierarchialDataTemplate を使用したツリービュー

提供された最初の実際の回答へのコメントとして、ポスターはそれをどのように解決したかを述べていますが、コードを提供していませんでした。エンティティとグループのセットアップ構造は同じです。xamlが最終的にどのように見えるかを誰かが説明できるかどうか疑問に思っていました。彼らが新しいノード クラスを作成したということは、基本的にグループのリストを含むクラスを作成したことを意味しているだけだと思います。何かのようなもの

class groupHolder
{
   public List<Group> myGroups {get;set;}
   public groupHolder() { myGroups = new List<Group>(); } 
}

私はちょうど3つのレベルの深さに行こうとしています:

グループ 1
- - - - AnotherGroup1
- - - - - - - - entity1
- - - - - - - - entity2
- - - - AnotherGroup2
- - - - - - - - entity1
Group2
- - - - Entity1
- - - - Entity2
- - - - AnotherGroup1
- - - - - - - - entity1
- - - - - - - - entity2
- - - - AnotherGroup2
- - - - - - - - entity1
など...

私が言ったように、私はこれに慣れていません。私はまた、このチュートリアルを使用しようとしています:

http://blogs.microsoft.co.il/blogs/davids/archive/2009/06/04/hierarchicaldatatemplate-and-treeview.aspx

しかし、別の HierarchicalDataTemplate を設定しようとすると、ItemTemplate が複数回設定されていると表示されます。道に迷いました。


編集:ウェブでこのリンクを見つけました。それも役立ちます....私は思う...

http://www.codeproject.com/Articles/36451/Organizing-Heterogeneous-Data-on-a-WPF-TreeView.aspx

4

1 に答える 1

4

その構造を再作成することができました:

ツリー表示:

 <sdk:TreeView Grid.Row="2"                                            
                      ItemTemplate="{StaticResource GroupTemplate}"
                      ItemsSource="{Binding Path=Groups}">            
        </sdk:TreeView>

テンプレート:

 <UserControl.Resources>       
        <common:HierarchicalDataTemplate x:Key="EntryTemplate">
            <TextBlock Text="{Binding Path=Name}" />
        </common:HierarchicalDataTemplate>
        <common:HierarchicalDataTemplate x:Key="SubGroupTemplate"
                                         ItemsSource="{Binding Path=Entries}"
                                         ItemTemplate="{StaticResource EntryTemplate}">
            <TextBlock Text="{Binding Path=Name}" />
        </common:HierarchicalDataTemplate>
        <common:HierarchicalDataTemplate x:Key="GroupTemplate"
                                         ItemsSource="{Binding Path=SubGroups}"
                                         ItemTemplate="{StaticResource SubGroupTemplate}">
            <TextBlock Text="{Binding Path=Name}" />
        </common:HierarchicalDataTemplate>
    </UserControl.Resources>

ViewModel には次のものがあります。

public List<Group> Groups { get; set; }

休み:

 public class Group
    {
        public int Key { get; set; }
        public string Name { get; set; }
        public List<Group> SubGroups { get; set; }
        public List<Entry> Entries { get; set; }
    }

  public class Entry
    {
        public int Key { get; set; }
        public string Name { get; set; }
    }
于 2011-03-11T19:42:09.663 に答える