• 【WPF】MVVM实践(上)


    在最近完成的一个模块项目开发中,第一次尝试使用所谓的MVVM模式进行开发。主要参考了以下几篇文章:

     WPF Apps With The Model-View-ViewModel Design Pattern

     Simplifying the WPF TreeView by Using the ViewModel Pattern

     Introduction to Attached Behaviors in WPF

    全英的,又是“新”概念,所以一开始折磨了几天都没太大的效果,而项目工期又有限,以致项目经理都建议我不要搞这玩意,速战速决了(返工吗?呃……)。最终自己顶住压力,加班加点把它应用到模块中,周末都带回家里研究,最终任务按期完成,并颇有收获。

    首先来看看这个小模块的项目文件:

     

    命名空间(包)按逻辑思路重新排列一下:

    • BLL
    • Model
    • DataAccess
    • ViewModel
    • AttachBehavior
    • View

    其中DataAccess 下的类才算真正的逻辑处理操作,这里的BLL不过是做点数据库的获取、更新(就是写了一堆SQL语句)。

    DataAccess 下的ReportServerRepository.csReportGroupRepository.cs,以及ViewModel下的ReportServerViewModel.csReportGroupViewModel.cs AllReportServersViewModel.csReportGroupTreeViewModel.cs是几大主要“功臣”,大多数操作都由它们负责。

    View层的xmal,绑定的数据源,最终都是对应到一个个xxViewModel,所以对于涉及到单个数据单位的操作——比如ReportServer时,对其进行的数据(Property)编辑、保存操作(Command),都把实现逻辑写到了xxViewModel中。而对于界面上一次性获取大批量数据绑定TreeViewListBox控件上的,则是用ARSVMRGTVM作为绑定源。

    而可能令人感到混乱的是,Viewxmal文件)的DataContext其实是RXWindowViewModel。所以其实这里套用了很多层!

    下次通过分析模块中的ReportServer编辑功能,走一遍代码流程,看看MVVM是如何通过VMVM的操作的。。。
  • 相关阅读:
    2020软件工程作业04(2.0)
    2020软件工程作业03
    软件工程作业02
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
    2020软件工程作业00——问题清单
    2020软件工程作业04
    2020软件工程作业02
  • 原文地址:https://www.cnblogs.com/glife/p/1782168.html
Copyright © 2020-2023  润新知