7

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

然而,一个问题一直困扰着我,我一直无法解决。

如果我使用 MVVM 4 项目模板创建项目,则解决方案构建良好、运行良好并且在混合中运行良好。

然而

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

“课程已注册”

只是想弄清楚这个非常烦人的错误。

为了清楚起见,DataService 中的内容并不重要,因为即使使用只有 1 个空函数的接口和服务也会产生相同的错误

4

1 回答 1

23

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

所以你需要添加一个检查:

if (!SimpleIoc.Default.IsRegistered<ISomeService>())
    SimpleIoc.Default.Register<ISomeService, SomeService>();
于 2012-07-02T19:08:29.467 回答