2016-09-20 3 views
-4

のグループリストWPFのTreeView私はこのような何かを探しているクラスのリスト持っているアイテム

グループ1
を.. .SubGroup1
......アイテム1
......項2
... SubGroup2
...... ITEM3
... SubGroup3
...... ITEM4
...... Item5
グループ2
... SubGroup4
...... Item6

どうすべき私のXAMLの外観それは好きですか?

私は、ネストされたHierarchicalDataTemplates、GroupStyleとCollectionViewSourceを試してきましたが、何も本当に

また、Itemプロパティを編集できるようにするとよいでしょう....動作するように見えません。

編集:Grouping child objects in WPF TreeViewのコピーと呼ばれるが、この仲間は、私は(一種の)で終わるしたいもので出始めているようですされています

+1

可能な複製を(HTTP ://stackoverflow.com/questions/2248346/grouping-child-objects-in-wpf-treeview) –

+0

いいえ、それはその記事の人のようです私がほしいと思うものだけでタトゥー... – h607732

答えて

0

良いコード-サマリア人は、これを書きました。他の人はそれが役立つ場合には、私は、それをここに投稿します:[WPFのTreeViewコントロールで子オブジェクトをグループ化]の

<DataTemplate x:Key="LeafTemplate"> 
     <!--your item's property--> 
     <TextBlock Text="{Binding Path=Val3}"/> 
    </DataTemplate> 

    <HierarchicalDataTemplate ItemsSource="{Binding Items}" x:Key="Level2GroupTemplate" ItemTemplate="{StaticResource LeafTemplate}"> 
     <!--GroupItem.Name--> 
     <TextBlock Text="{Binding Path=Name}" /> 
    </HierarchicalDataTemplate> 

    <HierarchicalDataTemplate ItemsSource="{Binding Items}" x:Key="Level1GroupTemplate" ItemTemplate="{StaticResource Level2GroupTemplate}"> 
     <!--GroupItem.Name--> 
     <TextBlock Text="{Binding Path=Name}" /> 
    </HierarchicalDataTemplate> 

</Window.Resources> 

public ObservableCollection<TestTreeClass> TestTreeList 
    { 
     get { return (ObservableCollection<TestTreeClass>)GetValue(TestTreeListProperty); } 
     set { SetValue(TestTreeListProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for TestTreeList. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty TestTreeListProperty = 
     DependencyProperty.Register("TestTreeList", typeof(ObservableCollection<TestTreeClass>), typeof(MainWindow), new PropertyMetadata(null)); 

    TestTreeList = new ObservableCollection<TestTreeClass>() 
     { 
      new TestTreeClass() { Val1 = "AAA", Val2 = "111", Val3 = "abc" }, 
      new TestTreeClass() { Val1 = "AAA", Val2 = "111", Val3 = "def" }, 
      new TestTreeClass() { Val1 = "BBB", Val2 = "111", Val3 = "ghi" }, 
      new TestTreeClass() { Val1 = "BBB", Val2 = "111", Val3 = "jkl" }, 
      new TestTreeClass() { Val1 = "AAA", Val2 = "222", Val3 = "mno" } 
}; 
関連する問題