Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 单独的ResourceDictionary中的DataTemplate_Wpf_Xaml_Binding_Resources_Datatemplate - Fatal编程技术网

Wpf 单独的ResourceDictionary中的DataTemplate

Wpf 单独的ResourceDictionary中的DataTemplate,wpf,xaml,binding,resources,datatemplate,Wpf,Xaml,Binding,Resources,Datatemplate,我知道有很多与这个问题相关的话题,但我找不到一个完全适合我的问题的解决方案。。。也许没有 目前,我有一个UserControl,它拥有一个导航,允许用户在不同的屏幕之间切换。这些屏幕在myUserControl的Resources部分定义为DataTemplate 类似的内容: <DataTemplate TargetType={x:Type vm:ViewModel1}> ... </DataTemplate> <DataTemplate TargetTy

我知道有很多与这个问题相关的话题,但我找不到一个完全适合我的问题的解决方案。。。也许没有

目前,我有一个
UserControl
,它拥有一个导航,允许用户在不同的屏幕之间切换。这些屏幕在my
UserControl的
Resources
部分定义为
DataTemplate

类似的内容:

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

...
...
...

好的,我想做的是将这些数据模板放在一个单独的XAML文件中,并将该文件链接到UserControl的资源部分。我真的必须使这个新的XAML资源字典在我的应用程序中全局可用(将它添加到App.XAML资源中),还是有其他/更好的方法?

不,您不必使它全局可用。只需在用户控制资源部分声明资源字典,方法与在app.xaml中相同

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

如果需要,可以使用相对文件路径
“.\Folder\Folder\Dictionary.xaml”
指向文件