ViewModel依赖于Services + tombstoning

时间:2012-02-04 02:16:42

标签: windows-phone-7 viewmodel tombstoning

在逻辑删除后在viewModel中设置/注入依赖关系的建议方法是什么?假设当应用程序停用时,您通常会将ViewModel添加到State字典中,然后在应用程序重新激活框架之前反序列化需要默认构造函数的ViewModel

如果我有下面的类,我希望依赖注入创建一个“MyVM”实例,为IServiceA和IServiceB注入依赖项。拥有默认构造函数不会设置所需的依赖项。

public class MyVM(IServiceA svca,IServiceB svcB)
{

}

如何在墓碑场景中设置ViewModel?

1 个答案:

答案 0 :(得分:0)

我不知道您是否使用特定的MVVM框架,但Caliburn Micro有一些内置的逻辑删除功能。

文档中的一小段摘录:

public class PivotPageModelStorage : StorageHandler<PivotPageViewModel> {  
    public override void Configure() {  
        this.ActiveItemIndex()  
            .InPhoneState()  
            .RestoreAfterViewLoad();  
    }  
}  

该示例在电话状态下存储ActiveItemIndex(PiveotPageViewModel上的属性),但它也可以在PhoneState,AppSettings或您自己的自定义实现中存储整个对象图。通过继承StorageHandler,您可以获得所有这些功能。使用CM,您不必担心重新注入服务,它会为您处理,因为它拥有自己的内置容器。

CM WP7 Docs

在最近关于构建WP7应用的Hanselman帖子中,他谈到了TombstoneHelper。我没有使用过这个,但它看起来很有趣。