私はアイテムの階層リストを表示するWPFツリービューコントロール(C#では、それは重要ではありません)を作成しようとしています。それに加えて、ツリー内の各アイテムには、のタイプ「」の「その他のアイテム」のリストが表示されます(下記参照)。2つの異なるタイプの2つのリストを含むデータバインドされたアイテムでWPFツリービューをセットアップするにはどうすればよいですか?
+ Item1
- OtherItem1
- OtherItem2
+ Item2
- OtherItem3
- OtherItem4
+ Item3
+ Item4
etc...
私はすべてのデータバインドとドラッグアンドドロップをサポートしたいと思います。私は基本的なリストは "アイテム"の設定だけが含まれているが、私は少し問題が第2のリストをサポートする方法を考えている。誰かがItemSourceのタイプの方向に私を指し示すことさえできるのであれば、それはたくさんの助けになるはずです。
マルチバインドなどが必要ですか?ここで私は現時点で何をしようとしているのですか(しかしそれはうまくいかない)。 名は単にアイテムの名前を表す文字列とコンポーネントある
<TreeView ItemsSource="{Binding Bones}">
<TreeView.ItemContainerStyle>
<!--
This Style binds a TreeViewItem to a BoneTreeViewModel.
-->
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:Skeleton.BoneTreeViewModel}">
<HierarchicalDataTemplate.ItemsSource>
<MultiBinding>
<Binding Path="Name" />
<Binding Path="Components" />
</MultiBinding>
</HierarchicalDataTemplate.ItemsSource>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
はOtherItemの(平坦、非階層)ReadOnlyCollectionあります。
読んでいただきありがとうございます!
こんにちはアントン、私を助けるために時間を割いてくれてありがとう。私はこのオプションを検討しましたが、実際に問題を解決するわけではありません。私は、 "otheritem"型が階層的で子どもを持つことを望まない。解決策は、アイテムと他のアイテムの両方がツリービューで同じ方法で扱われることを意味します。 – JBeFat
私は上記のベースを使用して、ツリービュー内の複数のタイプのアイテムを表します。また、私はこれらのノードをツリービューで使用するための "コンテナ"と見なします。私のVMとツリービューをいくつかの複雑な方法で一緒に動作させようとするのではなく、階層 – Anton