星空网 > 软件开发 > ASP.net

winform快速开发平台之代码抽象

通常我们在处理编辑窗体时。往往会遇到数据绑定。例如combobox控件绑定数据字典可能是我们经常用到的。然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢?

首先,我们要绑定combobox动态数据,大致都是来自于数据字典的数据绑定,那么思路来了,我们需要绑定的是通过获取字典属性来绑定ComboBox控件。大家都知道ComboBox控件中存在显示数据,和值数据对数据值进行绑定。

那么此时我们需要定义一个实体类:

 1   /// <summary> 2   /// ComboBoxModel数据绑定实体类 3   /// </summary> 4   public class BaseComboBoxModel 5   { /// <summary> 6     /// 实体编号 7     /// </summary> 8     public string Id { set; get; } 9     /// <summary>10     /// 树显示名称11     /// </summary>12     public string Name { set; get; }13   }

这个类主要用于处理一个通用的数据集合。这样便于我们在后续处理中更加简洁和方便。

对数操作的数据字典相信大家都有自己的通用的框架,EF,dapper,或其他的ORM 或自己的DBHelper.这些都无关紧要。重要的是我们通过这样的一个设计让我们的代码更加简洁。维护起来更加的方便。

程序的出发点始终是能让初级程序员写出高级程序员代码质量作为目标。

言归正传,对于编辑窗体,我们需要创建一个FormBaseEdit基窗体。由他来构造我们大多数的通用方法。我们在创建关于Edit窗体时进行对FormBaseEdit的继承。这样所有有关于Edit级别的操作都会继承过来。

我们在FormBaseEdit窗体的操作方法

 1 /// <summary>  3 /// 绑定数据字典  5 /// </summary>  7 /// <param name="comboBox">绑定控件</param> 9 /// <param name="key">数据字典编码</param> 11 public virtual void LoadComboBox(ComboBox comboBox, string key) 13 { 15   var list = _baseDataDictionaryDetailBll.GetDataDictionaryDetailListByCode(key) 17        .Select(p => new BaseComboBoxModel() 19        { 21          Id = p.DataDictionaryId, 23          Name = p.Name 25        }).ToList(); 27   list.Insert(0, new BaseComboBoxModel() { Id = string.Empty, Name = "请选择" }); 29   comboBox.DataSource = list; 31   comboBox.DisplayMember = "Name"; 33   comboBox.ValueMember = "Id"; 35 }

这样一个通用的完善的ComboBox绑定控件就已经完成了。

 

通过这样的构造我们在项目中在进行对数据字典的数据绑定就得心应手了。我们的小伙伴不需要关心如何绑定的数据。 只需要在自己的编辑窗体中进行一个数据配置就可以完成对数据操作。 代码同时也越发的简洁。

下图看一下我们的使用:下图中简单的2句话就可以将数据字典的动态数据绑定到我们的控件中。用起来还是蛮方便的。

winform快速开发平台之代码抽象

通过如下方法我们也可以绑定一下常用的数据如城市联动菜单:

winform快速开发平台之代码抽象

相同的思路:下面是构建的绑定TreeView的实体结构

 1 public class BaseTreeViewModel 2 { 3   /// <summary> 4   /// 实体编号 5   /// </summary> 6   public string Id { set; get; } 7   /// <summary> 8   /// 树显示名称 9   /// </summary>10   public string Name { set; get; }11   /// <summary>12   /// 父编号13   /// </summary>14   public string ParentId { set; get; }15 }16 17 public class BaseTreeViewMenuModel : BaseTreeViewModel18 {19   /// <summary>20   /// 分类21   /// </summary>22   public bool IsForm { set; get; }23 24   /// <summary>25   /// 命名空间26   /// </summary>27   public string Namespace { set; get; }28 29   /// <summary>30   /// 调用类 31   /// </summary>32   public string Class { set; get; }33 }

 

Winform快速开发平台: 基础模块,代码抽象,通用代码、代码生成。 让程序员有相对较多的时间去专注于业务,摆脱重复性的工作,以及量级别的工作。通过有效的代码生成,尽可能的减少程序员编写的无用功代码! 每天进步一点点。

希望大家提供宝贵意见!非常感谢!

 




原标题:winform快速开发平台之代码抽象

关键词:winform

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

这款免费的神仙选品工具你还没有用过吗?:https://www.kjdsnews.com/a/543670.html
亚马逊官方选品工具上线!帮你拓展更多品类:https://www.kjdsnews.com/a/543671.html
如何在 15 分钟内创建自己的 Shopify 商店(2021 年 8 月):https://www.kjdsnews.com/a/543672.html
亚马逊产品快速清仓的六个方法:https://www.kjdsnews.com/a/543673.html
跨境物流:跨越周期,还是随波逐流?:https://www.kjdsnews.com/a/543674.html
深圳大卖要求“大小周”工作制!但它是招聘禁词!?:https://www.kjdsnews.com/a/543675.html
合肥有什么约会的地方好玩的地方 合肥哪里适合情侣好玩的地方:https://www.vstour.cn/a/411237.html
曾家山滑雪场-曾家山滑雪场号码:https://www.vstour.cn/a/411238.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流