1

在我对事件注册的疑惑之后(你可以在这里找到ViewModel Event Registration 和 ViewModel Lifetime),现在我正在考虑 viewmodel 墓碑:

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

最好有专门的状态类,其独特目的是包含所有应用程序数据,everyviewmodel 从那里获取数据(我的意思是对数据的引用)并更新那里的数据,应用程序只考虑序列化那些专门的类?

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

问候 SkyG

4

1 回答 1

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();  
}   
于 2012-02-09T15:34:31.503 回答