2011-10-27 19 views
1

レポートツリービューのことをしようとしています。私は親ノードとして持っているテキストを書くことができました。必要な場合は、さらにいくつかの情報を表示するためにサブノードとして文字列を追加します。バインドWPFの同じオブジェクトのリストを持つオブジェクトへのツリービュー

私は、レポートオブジェクトを作った:

public class Report 
{ 
    private List<Report> reportList = new List<Report>(); 

    public string Text { get; set; } 
    public List<Report> Reports 
    { 
     get 
     { 
      return reportList; 
     } 
     set 
     { 
      reportList = value; 
     } 
    } 
} 

それから私は、私はその後、ツリービューのItemsSourceに供給しまうレポートコレクションを持っていると思いますが、私はそれが作成されるようにバインディングを作成する方法が分かりませんサブノードを適切にスルーアウトして、Googleを検索しようとしましたが、正しい方法を見つけることができませんでした。

他に誰かが私を助けることができますか?

答えて

2

あなたは私のああ...私はそれすでにやったと思ったHierarchicalDataTemplate

<TreeView ItemsSource="{Binding Reports}"> 
    <TreeView.Resources> 
     <HierarchicalDataTemplate DataType="{x:Type local:Report}" ItemsSource="{Binding Reports}"> 
      <TextBlock Text="{Binding Text}" /> 
     </HierarchicalDataTemplate> 
    </TreeView.Resources> 
</TreeView> 
+0

使用する必要がありますが、私はバインディングか何かをめちゃめちゃにしたんだろうと思います。本当にありがとう。私はおそらくフォローアップを頼むことができますか?私はその後、名、姓、住所、性別、身長を持つ人物オブジェクトを持っていたとします。親ノードでは、姓と名だけを表示したいだけですが、サブノードにはすべての情報(マスター詳細の種類)があります。その階層の階層データは使用できません。 –

+1

@Xenoxsis:ツリー内の要素の型に基づいて 'HierarchicalDataTemplate'を選択するために' DataType'プロパティを使用するのではなく(異なるレベルの同じ型の要素を区別しません)、 'ItemTemplate'次のレベルの別の 'HierarchicalDataTemplate'を指定します。 –

0
<TreeView ItemsSource="{Binding ReportCollection}"> 
    <TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Reports}"> 
     <TextBlock Text="{Binding Text}" /> 
    </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView>
関連する問題