Caliburn Micro 框架 WP8使用研究(三)墓碑处理

背景

Windows Phone 8 开发过程中Tombstone的处理真是让我们又爱又恨,它能让程序看起来一直在运行。但处理墓碑却是个很麻烦的事情,传统的方式我们需要在程序Deactived事件触发后,将需要保存的状态放到State中,然后用户回来后再加载出来。而如果我们的程序采用MVVM架构,情况会更复杂,有多复杂相信每个人都有所体会。话不多说,让我们继续看CM框架中神奇的墓碑处理。

   

从简单的代码开始:

在测试页面,我们添加一个TextBox起名为Name:

   

然后在ViewModel中添加Name属性实现INPC接口。

   

只需如此,当用户输入信息到Textbox中,墓碑再回来,Textbox中的输入依然为墓碑前的内容。依然从问题来分析问题:

1、StorageHandler是做什么用的?

这个类便是处理墓碑的类,CM在程序启动时会反射出所有继承此类的类,然后进行处理,当程序Deactived之后,便会自动将配置的属性存入State中,而当程序再次启动时,会将此属性重新还原到ViewModel中

2、Property函数和InPhoneState函数?

这两个函数用来配置ViewModel中对应的哪个属性放入什么位置,例如上面代码中便将Name属性放到State中进行保存

3、只需要这些代码么?

我们要在Bootstrapper的Configure中调用RegisterPhoneServices,这个函数会注册用于墓碑处理的类,用于我们的操作。

   

总结

CM着实是个值得深入研究的一个类库,作者解决问题的思路很值得我们学习,而诸多实现方法也是我们学习语法的好地方。

而就使用而言,CM对WP系统提供的额外支持,使它成为WP APP MVVM架构的不二之选。

   

QQ交流群:182659848

posted @ 2013-06-07 16:44  孤狼晖  阅读(1259)  评论(2编辑  收藏  举报