我有一个BIG和OLD xaml用户控件,我正在尝试为它添加ViewModel类(做正确的事情)。 在xaml中附加viewmodel的代码是:
xmlns:vm="clr-namespace:Company.Proj.ViewModel;assembly=Company.Proj"
xmlns:v="clr-namespace:Company.Proj.View;assembly=Company.Proj"
mc:Ignorable="d">
<UserControl.Resources>
<DataTemplate
DataType="{x:Type vm:SampleVM}">
<v:MainWindow/>
</DataTemplate>
</UserControl.Resources>
<UserControl.DataContext>
<vm:SampleVM/>
</UserControl.DataContext>
以及未来ViewModel的类:
namespace Company.Proj.ViewModel //the namespace is correct
{
public class SampleVM // the class is public
{
public SampleVM() // void constructor? perhaps not needed here
{
}
}
}
我得到了SampleVM does not exist in the namespace clr-namespace:Company.Proj.ViewModel;assembly=Company.Proj"
我搜索了很多,发现了许多答案。像 The name ViewModel does not exist in the namespace "clr-namespace:Project.ViewModels"
...我试图重建Projec / reopenStudio /更改debug-release-debug /仔细))copypaste assembly和namespece名称......
但没有解决(( 是否有任何其他变体可以将ViewModel连接到View.xaml(可能是我使用过的更好的)或者可以做些什么来解决这个问题?
我的VS版:VS社区2013 12.0.3.1101.00更新4 目标框架4.5.1
编辑:我的问题与上面的链接不同,因为在我的问题中,clr-path中没有错误(请参阅Will的最佳答案)答案 0 :(得分:0)
要简单地调试它,您可以尝试以下步骤:
PS:正如你在问题中提到的,void构造函数不是问题。它需要一个构造函数来初始化。无法构造函数的类无法初始化(使用factorymethods除外)。
修改强> 您可能希望在similar question上看到答案。