9

この質問に関連するトピックがたくさんあることは知っていますが、私の問題に完全に適合する解決策を見つけることができませんでした...おそらく何もありませんか?

現時点UserControlでは、ユーザーが異なる画面を切り替えることができるナビゲーションを保持する があります。これらの画面はmy asのResources部分で定義されています。UserControlDataTemplate

そんな感じ:

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

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

4

1 に答える 1

15

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

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

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

于 2012-11-06T08:13:47.470 に答える