1

在复合应用程序(棱镜)中,当我的模块加载时,我收到此错误:

{“当前构建操作(构建键Build Key[CustomersModul.ViewModels.CustomerAllViewModel, null])失败:尝试调用构造函数CustomersModul.ViewModels.CustomerAllViewModel(CustomersModul.Views.CustomerAllView view)时无法解析参数视图。(策略类型 Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy,索引 2)"}

我正在解决这个类:

CustomerAllViewModel layoutManager = this.container.Resolve<CustomerAllViewModel>();

那个类看起来像这样

public class CustomerAllViewModel : ViewModelBase
{
    public CustomerAllView View { get; set; }
    public ICommand TextChangeCommand { get; set; }
    private Customer customer;

public CustomerAllViewModel(CustomerAllView view)
{
    View = view;
    view.DataContext = this;
    ...

通常我会解析没有构造函数参数的Presenter并在内部实例化他们的视图。这是我第一次使用接受 View 作为参数的ViewModel 。

有趣的是,当我使用Resharper转到视图时,它会询问我是否要转到 XAML 或后面的代码,所以也许 Prism 很困惑要实例化哪个?

如何让 Prism 在参数中自动实例化此视图(带有 XAML 和代码隐藏的用户控件)?

4

2 回答 2

4

有时这实际上不是错误,而是其他错误。查看内部异常,或调用 Microsoft.Practices.Composite.ExceptionExtensions.GetRootException(ex) 以获取根异常。您可能会发现在您没有看到的构造函数之一中抛出了一些错误。

于 2009-07-28T14:44:27.517 回答
0

您是否已将 CustomerAllView 添加到容器中?当我忘记向容器添加类型时,我通常会收到此错误。

于 2009-07-30T08:49:45.550 回答