0

我正在尝试构建一个 TreeView 并像这个链接一样设置它:

Silverlight 与 WPF - 带有 HierarchialDataTemplate 的 Treeview

作为对第一个实际答案的评论,提供者说他们是如何解决它的,但他们没有提供代码,我理解他们所说的,但我对此真的很陌生,无法做到正确。我与实体和组具有相同的设置结构。我想知道是否有人可以解释 xaml 最终的样子。我假设他们创建了一个新的节点类,这只是意味着他们创建了一个基本上包含组列表的类。就像是

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

我只是想深入三个层次:

组 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 回答