MVVM Light Apuntas Notas的CategoryEditorViewModel构造函数

本文关键字:CategoryEditorViewModel 构造函数 Notas Light Apuntas MVVM | 更新日期: 2023-09-27 17:49:37

我已经下载并运行了示例并理解了大多数内容,除了我无法找出CategoryEditorViewModel类从哪里获得它的构造函数参数。它是"ICategoryRepository categoryRepository",我已经搜索了引用,但仍然无法理解在创建视图模型时如何以及在哪里传递参数。我希望有人能给我一个答案。

MVVM Light Apuntas Notas的CategoryEditorViewModel构造函数

我也有同样的问题。

到目前为止,我从像

这样的线程中发现

带有多个参数的构造函数

以及更多的是,在bootstrap.cs文件中的Apuntas Notas项目中,接口ICategoryRepository被注册为类categoryrepository。

因此,当属性CategoryEditor试图通过

在ViewModelLocator.cs中解析实例时
        public CategoryEditorViewModel CategoryEditor
    {
        get { return _bootStrapper.Container.Resolve<CategoryEditorViewModel>(); }
    }

和实例不存在,它尝试用它唯一的构造函数创建一个类CategoryEditorViewModel的对象,该构造函数期望ICategoryRespository接口。

正如我之前提到的,我们在bootstrap.cs文件中用CategoryRepository类注册了这个接口。因此,它创建了一个CategoryRepository对象,并将其传递给视图模型构造函数。

希望这能消除你的疑虑。

如果你想知道如果你有多个构造函数会发生什么,你可以在bootstrap。cs中注册一个你喜欢的,比如
Container.RegisterType<CategoryEditorViewModel>(new InjectionConstructor(typeof(ICategoryRepository), 5));

,现在如果你在CategoryEditorViewModel中有另一个构造函数额外期望一个int,它将被调用,而不是之前的那个。(传递一个int值为5是相当愚蠢的,但希望你得到的图片,你可以给你的首选构造函数的参数类型,并确保他们注册与bootstrap容器)

相关文章:
  • 没有找到相关文章