0

混合タイプのオブジェクトの階層にバインドされたWPFTreeViewがあります。したがって、「DataType」プロパティでHierarchicalDataTemplatesを使用して、各タイプに使用されるテンプレートを指定します。これは正常に機能します(TreeViewは各オブジェクトタイプに適切なテンプレートを自動的にキャッチします)。

ここで、同じタイプのオブジェクトが入力される2番目のTreeView(同じXAMLファイル内)があるという問題があります。ただし、今回は別の方法で表示する必要があるため、別のHierarchicalDateTemplatesのセットが必要です。ここでも、「DataType」プロパティを使用します。しかし、それらを同じXAMLファイルに入れると、もちろんエラーが発生します(同じタイプの2つのテンプレートを定義できないということです)。

最初のセットが最初のTreeViewによって排他的に使用され、2番目のセットが2番目のTreeViewによってのみ使用されるように、それらを何らかの方法でスコープする方法はありますか?

(オブジェクトツリー構造が事前にわからないため、「DataType」アプローチ(とにかく私が好む)を使用する必要があり、静的なHierarchicalDataTemplateを使用できないことに注意してください。)

4

1 に答える 1

1

最初のDataTemplateセットを最初のTreeViewのリソースに配置し、2番目のDataTemplateセットを2番目のTreeViewのリソースに配置すると、機能するはずです。

<TreeView>
    <TreeView.Resources>
        <!-- put your data templates here -->
    </TreeView.Resources>
</TreeView>

詳細については、 FrameworkElement.Resourcesを参照してください。

于 2012-11-09T16:48:43.607 に答える