Loading

豆瓣电台WP7客户端 MVVM重构记录之-总结

     经过几个晚上时间的奋斗,dbfm7的MVVM改造之旅终于告一段落大笑。从对MVVM的无知到现在对它的半只半解,这个过程还是学到了很多。

     MVVM的目的在于使开发分离关注点,写后台逻辑的就写后台,设计UI的就设计UI。不过要达成这一点并不那么容易,比如导航,比如动画(StoryBoard),这些在ViewModel中都不是那么容易控制的,或者说一旦在VM中控制,那么就破坏了MVVM的初衷。上面这两个问题我都是使用MVVM Light的Message机制来处理的,虽然看起来解耦了,但是还是不够彻底。特别是ViewModel通知View去操作StoryBoard这种情况,虽然从代码层面来看分离了,但是没有分离关注点,ViewModel 还是在关注View。我还没想到更好的解决办法,我是想,要是能做到某个绑定属性(Image的Uri)发生变化的时候,View自动触发一个动画(右边飞入),这样就完美了。也许可行,哪位大侠指点下。

     现在的ViewModel比当初的CodeBehind,没有了业务夹杂UI的操作,真是清爽的了很多。当然CodeBehind并不是一行代码都没有。CodeBehind本来就是View的一部分,有些在XAML里面不能定义的复制UI操作,完全可以放在这里。另外MVVM Light真的很好用,使你的MVVM开发简单,优雅了不少!

最新代码请到codeplex下载:http://dbfm7.codeplex.com/SourceControl/list/changesets

刚刚改完,还没好好测试,bug在所难免,发现请告诉我。

以下是改造过程的记录,希望对初学MVVM的同学帮助。眨眼

豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light实现数据绑定

豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light实现Event绑定

豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light的Message实现导航

豆瓣电台WP7客户端 MVVM重构记录之使用AppBarUtils使ApplicationBarIconButton支持绑定(包括IconUri)

posted @ 2012-03-08 00:49  Agile.Zhou  阅读(2513)  评论(11编辑  收藏  举报