在Silverlight项目中采用MVVM模式
1,对于视图-逻辑的分离便于后期对原有功能扩展和维护,当UI变化时,ViewModel中的逻辑不需要进行变化
2,可以仅仅通过Blend实现简单的功能,而不需要写任何代码。
在实现过程中,不要只是为了实现MVVM而MVVM,而应该根据实际情况进行取舍,事实上,由于Silverlight只是WPF的一个子集,其对MVVM模式在某些方面的支持仍有所欠缺:
1,对枚举类型绑定比较困难,如将枚举类型绑定至RadioButton
2,Silverlight4中仅仅对继承ButtonBase的控件实现了Command属性,在实际的使用中,对于其它的事件可以使用Blend4中中的InvokeCommandAction
3,无法在View和ViewModel传递复杂对象,可以破坏View或者ViewModel作为折衷办法,如ChildWindow和父容器的对象传递
目前,个人对MVVM模式还需要下面的知识加强:
1, 如何传递EventArgs对象到ViewModel
2, 熟练掌握Behavior,Trigger,Action概念以运用到MVVM中
对于MVVM模式,需要在实际运用的过程中进行总结,只有这样才能真正体会采用MVVM模式在程序中的优势。