我正在尝试启动MVVM模式,我有这样的结构:
的App.xaml:
<Application x:Class="StereoVisionApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StereoVisionApp"
StartupUri="MainView.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<local:MainViewModel x:Key="StereoVisionApp.MainViewModel"/>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
MainViewModel.cs:
namespace StereoVisionApp.ViewModels
{
class MainViewModel
{
public MainViewModel()
{
}
}
}
我在这一行有错误:
<local:MainViewModel x:Key="StereoVisionApp.MainViewModel"/>
表示:
名称&#34; MainViewModel&#34;在命名空间中不存在 &#34; CLR-名称空间:StereoVisionApp&#34 ;. StereoVisionApp C:\ Users \ Me \ source \ repos \ StereoVisionApp \ StereoVisionApp \ App.xaml
我已经尝试了restarting万次。有什么帮助吗?
答案 0 :(得分:2)
在Visual Studio中,在项目中创建新文件夹时,默认情况下会创建名为projectname.foldername
的新命名空间。 (在您的情况下:StereoVisionApp.ViewModels
)。其中的所有文件都自动获取该命名空间。
你可以:
MainViewModel.cs
中的命名空间
或App.xaml
,如下所示:在Application
App.xaml
标题中添加此内容
xmlns:vm="clr-namespace:StereoVisionApp.ViewModels"
然后像这样使用它:
<vm:MainViewModel x:Key="StereoVisionApp.MainViewModel"/>
另请注意,x:Key
值是您选择的字符串(不一定是确切的位置,因此您实际上可以写:
<vm:MainViewModel x:Key="mainViewModel"/>
x:Key
值仅供将来参考。