使用MVVMLightV4,<Interface>已经在blend中注册了错误

Dar*_*ide 6 mvvm-light

我已经使用MVVML一段时间了,并且自从它首次推出以来就开始使用V4.

然而,我一直无法解决一个问题.

如果我使用MVVM 4项目模板创建项目,解决方案构建正常,运行正常并且可以在混合中正常工作.

然而

如果我启动自己的项目并使用Nuget安装MVVMLight V4,只要我添加一个基本的DataService并在ViewModelLocator模板中启用注释掉的代码并在Blend中打开项目我就会收到一个错误:

"班级已经注册"

只是试图找到这个非常恼人的错误的底部.

要明确的是,DataService中的内容并不重要,因为即使只有一个空函数的接口和服务也会产生相同的错误

try*_*dis 22

由于某种原因,Blend可能会多次初始化ViewModelLocator.

所以你需要添加一个支票:

if (!SimpleIoc.Default.IsRegistered<ISomeService>())
    SimpleIoc.Default.Register<ISomeService, SomeService>();
Run Code Online (Sandbox Code Playgroud)