質問

やあ、私は3つのノードを備えたWPFツリービューを持っています。最後の子供(3番目のノード)に、バインドされたデータが入力されたListViewが含まれています。私が遭遇している問題は、hierarchicaldatatemplateのitemtemplateにlistViewを入れた場合、コンテンツを含む単一のリストビューではなく、各子供のリストビューを取得することです。これはドキュメントごとに予想される動作ですが、私は回避策を探しています(おそらくItemContainerStyleを変更する可能性があります)。残念ながら、TreeViewItemの制御テンプレートの経験はほとんどありません。

TreeLeristViewを使用する可能性を検討しましたが、ユースケースに適合せず、別のコントロールをバインドしてデータを表示しません。

ListViewをTreeViewItemにサンドイッチしているという頭痛をすでに行った人はいますか、それとも誰かがこれを達成するためにControlTemplateを変更する方法を提案することができますか?

ありがとう、AJ

役に立ちましたか?

解決 2

状況に対処する最も簡単な方法は、2番目のノードの階層datatemplateをエキスパンダーに置き換え、階層datatemplateではなくリストビューにアイテムソースを設定し、エキスパンダーのボタンをristele from the treeviewitemのように見せることです。 ...ハックを選別しますが、それは機能します:)

すべての助けをありがとう、

AJ

他のヒント

ListViewを持つノードは、他の2つのノードとは異なるデータ型である必要があるため、TreeViewによって異なる方法で処理できます。また、リストビューデータを含む子供がにあるべきではないように聞こえます HierarchicalDataTemplate しかし、レギュラー DataTemplate 1つは、ツリービューによって認識されている他の子要素がないためです。 FITが表示されるように、TreeViewでHierarchIcalDatateMplateと通常のDateTemplateを混合および一致させることができます。通常のデータセテンプは「葉」ノードを表し、子供はいません。

ツリービューで使用されているが、階層テンプレートを使用しているさまざまなデータ型を持つサンプル:

<HierarchicalDataTemplate DataType="{x:Type FooNormal}" ItemsSource="{Binding TreeviewChildNodeCollection}">
   // do something else here.
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type FooList}" ItemsSource="{Binding TreeviewChildNodeCollection}">
  <ListView  ItemsSource="{Binding ListviewChildNodeCollection}">
   //use listview here
  </ListView>
</HierarchicalDataTemplate>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top