序列化VM与州级别

时间:2012-02-09 15:09:41

标签: windows-phone-7 mvvm tombstoning

在我对事件注册的惊叹之后(你可以在ViewModel Event Registration and ViewModel Lifetime找到),现在我正在考虑视图模型墓碑:

在Tombstoning的情况下,ViewModel序列化是一个好方法吗? 我正在考虑不同的视图模型引用同一个类的情况。在Viewmodels序列化和反序列化的情况下,引用的类实例可能有重复的实例,不是吗?

拥有专门的状态类并不是更好,它们的唯一目的是包含所有应用程序数据,每个视图模型从那里获取数据(我的意思是参考数据)并更新那里的数据,应用程序只想序列化那些专门的班级?

对此主题的任何经验表示赞赏。

此致 SkyG

1 个答案:

答案 0 :(得分:1)

Caliburn Micro内置了许多内容,允许您将视图模型或整个图形的属性保存到手机状态和应用程序设置。您只需要创建一个类并从StorageHandler继承。

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

以及您发布的其他问题。 CM有一种很好的方法来处理手机上的强制视图第一种方法。它允许您通过指定VM来执行页面导航,它将处理其余的。作为奖励,如果您指定要传递的参数,CM会将它们从查询字符串中拉出并填充目标VM上的属性。

public void GotoPageTwo() 
{  
    navigationService.UriFor<PivotPageViewModel>().WithParam(x => x.NumberOfTabs, 5).Navigate();  
}