关联视图和视图模型时出现WPF MVVM错误
本文关键字:视图 WPF MVVM 错误 模型 关联 | 更新日期: 2023-09-27 18:28:56
我正在学习按照本教程创建一个MVVM应用程序,它的入口视图中有这个:
示例中的作用
<UserControl.Resources>
<DataTemplate DataType="{x:Type vm:ProductViewModel}">
<vw:ProductView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:SingleBrandViewModel}">
<vw:SingleBrandView />
</DataTemplate>
</UserControl.Resources>
所以我在我的代码中尝试了以下内容
在我的代码中什么不起作用
<Page x:Class="MvvmAttempt.FilesView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MvvmAttempt"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="FilesView">
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
<local:MySizeConverter x:Key="sizeConverter"/>
<DataTemplate DataType="{x:Type local:SingleFileView}"> <--- error here
<local:SingleFileViewModel/> <--- error here
</DataTemplate>
</ResourceDictionary>
</Page.Resources>
... other stuff ...
</Page>
x:Type
有一条下划线错误消息:The type 'x:Type' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.
在<local:SingleFileViewModel/>
下,错误为:The specified value cannot be assigned. The following type was expected: "DependencyObject".
是什么原因导致了这些错误?当示例代码中没有类似的内容时,为什么它期望DependencyObject
?谢谢
也许你的错误就在这里:
<DataTemplate DataType="{x:Type local:SingleFileView}"> <--- error here
<local:SingleFileViewModel/> <--- error here
</DataTemplate>
请注意,您已将ViewModel指定为DataTemplate,将View指定为DataType。因此,在我看来,这应该有效:
<DataTemplate DataType="{x:Type local:SingleFileViewModel}">
<local:SingleFileView/>
</DataTemplate>