2012-11-06 11 views
7

この質問に関連するトピックはたくさんありますが、私の問題に完全に合った解決策を見つけることができませんでした。別のResourceDictionaryのDataTemplate

現在、私はUserControlを持っています。これは、ユーザーが異なる画面を切り替えることができるナビゲーションを保持しています。これらの画面はUserControlResources部分にDataTemplateと定義されています。

そのような何か:

<DataTemplate TargetType={x:Type vm:ViewModel1}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel2}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel3}> 
    ... 
</DataTemplate> 

[OK]を、何私がしたいんは別のXAMLファイルでこれらのDataTemplatesを配置し、UserControlのリソースの一部に、このファイルをリンクすることです。この新しいXAMLリソースディクショナリをアプリケーションでグローバルに使用できるようにする必要がありますか(App.xamlリソースに追加するか)、別の方法がありますか?

答えて

13

いいえ、グローバルにする必要はありません。 app.xamlの場合と同じように、ユーザーコントロールリソースセクションにリソースディクショナリを宣言するだけです。

<Control.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Dictionary1.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Control.Resources> 

必要に応じて、相対ファイルパス"..\Folder\Folder\Dictionary.xaml"を使用してファイルを指すことができます。

関連する問題