每当初始化不同程序集中的模型实例时,都无法创建ViewModelLocator的实例

时间:2013-03-18 07:38:21

标签: c# wpf mvvm entity-framework-4 mvvm-light

这是我第一次在StackOverflow中发布一些内容(虽然过去帮助了我很多)但通常我甚至不需要发帖提问,因为我已经回答了我的问题。但是这个我真的找不到合适的解释。

所以我正在修改C#,Entity Framework 4,WPF和MVVM Light。我已经制作了一个程序集,作为各种模型,视图和ViewModel的库,用于特定目的。

现在我正在制作另一个用于不同目的的集会。但是,在第一个程序集中已经提供了一些必需的方法和视图。所以我想我要将第一个程序集的引用添加到第二个程序集,然后从第一个程序集创建Model的实例到Model或第二个程序集的ViewModel。

一切都是在没有错误的情况下构建的。但是当我在第二个程序集中检查View的设计视图时,此部分有下划线:

<UserControl.Resources>
    <vm:ViewModelLocator x:Key="Locator" />
</UserControl.Resources>

当你看到设计视图时,顶部栏上写有一个错误:

Object reference not set to an instance of an object.
   at Powell.Materials.Common.ViewModel.MaterialsViewViewModel.SetupLists() in E:\Projects\Software\Powell Marketing\Powell\Powell\Materials\Powell.Materials.Common\ViewModel\MaterialsViewViewModel.cs:line 514
   at Powell.Materials.Common.ViewModel.MaterialsViewViewModel..ctor() in E:\Projects\Software\Powell Marketing\Powell\Powell\Materials\Powell.Materials.Common\ViewModel\MaterialsViewViewModel.cs:line 601

有人遇到过这种类型的错误吗?或者有没有正确的方法来做这种事情?

1 个答案:

答案 0 :(得分:0)

在代码中我看到了NullReferenceException的4个可能来源。

  • secretKey
  • IDUser
  • connectionName
  • retrieve(虽然可以正确实例化)

我不知道前三个来自哪里。所以检查他们的价值观我很确定其中一个是null。如果所有三个都正确实例化,请检查最后一个。