请使用以下代码段:
<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:
正常工作,正如预期的那样。
答案 0 :(得分:2)
声明另一个名称空间
xmlns:vm="clr-namespace:Palette_Packing.ViewModels"
然后写
DataType="{x:Type vm:TestViewModel}"