因为最近要做个小的WinForm程序,当窗口打开时,初始下拉框数据。用到了泛型方法。还是很方便的。
效果:
具体如下:
# 原代码
/// <summary>
/// 初始化下拉框
/// </summary>
private void InitCbb()
{
List<BusiDomain> list = busiDomainService.GetAll();
list.Insert(0, new BusiDomain { BusiDomainId = -1, BusiDomainName = "不详" });
this.cbbBusiDomain.DataSource = list;
this.cbbBusiDomain.DisplayMember = "BusiDomainName";
this.cbbBusiDomain.ValueMember = "BusiDomainId";
this.cbbBusiDomain.SelectedValue = -1;
}
--------------------------------------
# 提炼成通用方法
private void InitCbbData<T>(List<T> list, T newObj, string displayMember, string valueMember)
{
list.Insert(0, newObj);
this.cbbBusiDomain.DataSource = list;
this.cbbBusiDomain.DisplayMember = displayMember;
this.cbbBusiDomain.ValueMember = valueMember;
this.cbbBusiDomain.SelectedValue = -1;
}
--------------------------------------
修改之后的方法:2行搞定
private void InitCbb()
{
List<BusiDomain> list = busiDomainService.GetAll()
BusiDomain newObj = new BusiDomain { BusiDomainId = -1, BusiDomainName = "不详" };
InitCbbData<BusiDomain>(list, newObj, "BusiDomainName", "BusiDomainId");
}
记下来省的忘记。