在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模式在程序中的優勢。