当我ViewModel在Mvvm Light中使用多个构造函数时,我遇到了这个问题:
我有一个具有空ctor的视图模型,然后我创建了第二个接收参数的模型(在某些情况下想要做其他事情......).如果我尝试运行应用程序,我会得到:
无法注册:在Inner_VM中找到多个构造函数,但没有使用PreferredConstructor标记.
这只是如果我注册碰巧ViewModel在Locator:
SimpleIoc.Default.Register<Inner_VM>();
Run Code Online (Sandbox Code Playgroud)
然后在属性中使用它:
public Inner_VM Inner
{
get { return ServiceLocator.Current.GetInstance<Inner_VM>(); }
}
Run Code Online (Sandbox Code Playgroud)
如果我省略了注册ViewModel,然后在属性中使用它:
public Inner_VM Inner
{
get { return new Inner_VM(); }
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都有效......
我认为第一个选项使用正在重用的静态实例,第二个选项只是在我每次使用它时创建一个新实例.(这在我的应用程序中并不重要,但我试图了解原因,并且找不到任何解释它,即使在搜索SO和谷歌这个问题之后).
任何帮助都会受到欢迎.
| 归档时间: |
|
| 查看次数: |
4240 次 |
| 最近记录: |