Windows Phone 项目实战之账户助手

前言

一、数据库准备

账户助手,也可以成为账户(Money)管理系统。大家看到管理系统,第一个想到的词汇是什么不是诸如“信息管理系统”、“数据库”之类的词语,是的,我们账户助手中需要使用数据库。由于目前的Windows Phone 中没有内置数据库的支持(Mango更新会提供SQL-CE的支持) ,我们只能使用第三方提供的类库了。博客园的chenkai对Windows Phone 7 平台上数据库的使用做了一个很好的介绍。这儿我采用winphone7db.
 下图是winphone7db项目的截图

二、MVVM知识准备

2.1 MVVM简介
 MVVM的简介 上有很多资源,我就不重复了。我把自己的一点理解拿出来跟大家分享。MVVM,字母的全称想必大家都知道(Model-View-ViewModel)。我这里想要说明的一点就是MVVM一般是使用一个类去绑定整个页面的DataContext,这个类将在页面构造函数调用前被实例化(所以我们可以做一些初始化的事情…)。
2.2 MvvmLight简介
MVVM的框架很多,比如WPF最常用的Prism以及我们项目中用到的MvvmLight .

The MVVM Light Toolkit is a set of components helping people to get started in the Model – View – ViewModel pattern in Silverlight and WPF. It is a light and pragmatic framework that contains only the essential components needed. 

MvvmLight是开源的项目,我们可以查看其源代码,而且MvvmLight是基于MIT协议的,我们可以任意修改。并且MvvmLight提供了Visual Studio和Expression Blend的模板,简化我们的开发。 
PS:MvvmLight的源代码在其目录GalaSoft.MvvmLight (NET35)下

2.3 MvvmLight之Command

Command是WPF和Silverlight中的重要特性之一, 但是在silverlight for windows phone 中对Command的支持并不友好,所以我们需要借助现有的框架去实现Command。熟悉WPF和Silverlight的朋友应该都知道ICommand的重要用处,MvvmLight中的Command也实现了这个接口。

2.4 MvvmLight之Messenger

 大家用过MSN么,MSN的全称其实就是Messenger。大家用MSN来做神马,不是有QQ么。一位国外的朋友说道,外国人一般都用MSN。Messenger在MvvmLight中的作用就是用于View和ViewModel中的通信的。有童鞋会问,View和ViewModel不是通过数据绑定去沟通的么不是万能的,在某些时候绑定甚至会影响程序的性能,因为直接的赋值肯定比通过绑定引擎去赋值更快捷。Messenger可以在View或者ViewModel中注册(Register)一个”账 (token)”以及对于的处理委托(通常是对View或者ViewModel中的对象进行的操作),然后再ViewModel或者View中对其发送消息(Send),收到消息后,委托中相应的代码就会执行。大家可以联想CS游戏中的定时炸弹,我在你家里埋了个炸弹,然后我可以使用遥控器控制炸弹是否爆炸….来看下其实现方法,下图是Messenger的类结构图

前台XAML代码准备好了,我们需要在相应的ViewModel中准备相应的属性,从XAML中可以看到Menu的数据源是一个名为MenuList的东东。那这个东东是神马呢这里采用的是在MVVM中采用的集合 ObservableCollection

我们在ViewModel中实例化属性,并给属性初始化,下面的代码即是初始化菜单:

5.4  设置页实现

设置界面未实现~~~i am sorry~~~~~ 

六、Room for Improvement

由于是做Demo,加上时间精力有限,所以很多使用的功能都没有做,给出的源代码也仅仅是将大致的框架,里面可能会有许多问题。当然,你如果想要继续完善这个Demo,可以从以下方便进行:

6.1. 多账户支持 本来就想实现多账户的功能的,但是也算是给大家的一个小作业吧,其实就是分别存储即可。还有就是在启动程序时,判断当前是否存在账户,如果没有,需要弹出界面让用户创建账户;如果有多个账户存在,取当前setting中的账户。 
6.2. 多币种支持
6.3. 多分类(现在只有收入、支出)
在现实生活中,肯定不是仅仅收入和支出的,还又可以细分出很多类别,如专注、借贷等等。大家可以将收入、支出更加细化为购物支出、饮食支出、工资收入、奖金收入等等类别。当然实现的话需要加不少东西哦,有兴趣的童鞋可以自己尝试实现。 
6.4. 墓碑化处理
现在的项目中都没有做墓碑化处理,这肯定不对的,在实际项目中,我们必须做墓碑化处理:我们采用现成的类库去处理,也可以自己写代码去实现。 
6.5 异常处理

后记

写这么长的文章还是头一回(所以特别佩服园子里那位专门写长文章的gay

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树人工智能机器学习工具包Scikit-learn212927 人正在系统学习中 相关资源:百度图片疯狂下载器-专业指导文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年6月1日
下一篇 2015年6月1日

相关推荐