【发布时间】:2015-12-25 02:59:55
【问题描述】:
我需要将一个对象从一个视图模型传递到另一个视图模型。在我当前的实现中,我创建了一个 ProductVM 的静态实例,遵循这个 example,然后从实例访问它的属性。但从长远来看,传递静态实例似乎不是一个可靠的设计。
private static ProductVM _instance = new ProductVM();
public static ProductVMInstance { get { return _instance; } }
在研究提供静态视图模型实例的替代方案时,我发现constructor injection 是一个选项。
问题:
有没有人有任何例子,关于如何实现 ctor 注入来传递对象? (最好不要使用第三方框架)
ProductsVM:(保存要发送的属性的视图模型)
public ProductModel SelectedProduct { get; set; }
CustomerOrdersVM:(SelectedProduct 需要传入的视图模型)
public class CustomerOrdersViewModel : IPageViewModel
{
public CustomerOrdersViewModel()
{
}
}
【问题讨论】:
-
您使用的是哪个 IoC 容器?这对于答案至关重要,因为每个 IoC (DI) 容器都有自己的 API
-
@Tseng 我正在使用 ApplicationVM 来注册每个 VM。特别不使用任何 IoC 容器。 hastebin.com/osopigozoc.avrasm
标签: c# object mvvm constructor-injection