あるタイプのオブジェクトの監視可能なコレクションにバインドされた TreeView がありますが、同じタイプであるため、メイン オブジェクト タイプではなく、そのオブジェクト内の値に基づいて別の DataTemplate を表示したいと考えています。さらに明確にするために、実際には、含まれているオブジェクトのタイプに基づいて作成したいと考えています。
Ok, so, rather than doing this:
<HierarchicalDataTemplate DataType="{x:Type listItem:TreeNodeViewModel}" ItemsSource="{Binding Children}"
I actually want to do this:
<HierarchicalDataTemplate DataType.EmbeddedItem="{x:Type listItem:MyEmbededObjectType}"ItemsSource="{Binding Children}"
I have searched all day and now asking the question.
こんにちは、あなたの答えに感謝しますが、ここで何をすべきかまだ少しわかりません. また、質問をすべて表示して、自分が何をしようとしているのかを簡単に理解できるように、質問をフォーマットする方法を見つけました。私は Wpf を初めて使用しますが、長年の開発者であるため、非常に迅速に物事を理解していますが、私を困らせる奇妙なことがあります。ObservableCollection 内のオブジェクトが異なるオブジェクトである場合に別のテンプレートを表示する TreeView がありますが、この場合、ObservableCollection 内のオブジェクトはすべて同じタイプですが、これらのオブジェクトのそれぞれに a の埋め込みオブジェクトがあるという問題があります。異なる型であり、それが、テンプレートを取得するオブジェクト型として XAML を認識させようとしているものです。したがって、ObservableCollection で提供しているオブジェクトは TreeNodeViewModel です。このクラスには、Item というオブジェクト型の埋め込みオブジェクトがあります。TreeNode が何に関連しているかを知るために使用するバインドされたアイテムです。このプロパティは Item と呼ばれ、テンプレートを持ち上げるために使用したいのはこのプロパティです。前もって感謝します。