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 回答