用路径替换local:keyword的适当方法是什么?

时间:2017-08-31 09:06:26

标签: c# wpf xaml mvvm namespaces

问题

请使用以下代码段:

<DataTemplate DataType="{x:Type local:TestViewModel}">
        <local:TestView></local:TestView>
</DataTemplate>

local:的定义如下:

xmlns:local="clr-namespace:Palette_Packing"

现在,TestViewModel位于子文件夹中,具有相应的名称空间Palette_Packing.ViewModels。 显然,local:指的是不同的命名空间,其中TestViewModel未找到。

如何使用local:的相应路径替换TestViewModel

到目前为止我尝试了什么

当然,我尝试了以下内容:

<DataTemplate DataType="{x:Type Palette_Packing.ViewModels.TestViewModel}">
        <Palette_Packing.Views.TestView></Palette_Packing.Views.TestView>
</DataTemplate>

然而,这会产生关于不受支持的嵌套类型的错误。

将班级TestViewModel设置为public也无法解决问题。

声明

代码段显示ViewModel和View,两者都存在问题。为了清楚起见,我只询问了ViewModel。

此外,如果ViewModel和View从其子文件夹移动到主目录,local:正常工作,正如预期的那样。

1 个答案:

答案 0 :(得分:2)

声明另一个名称空间

xmlns:vm="clr-namespace:Palette_Packing.ViewModels"

然后写

DataType="{x:Type vm:TestViewModel}"