我面临一个我不知道如何解决的问题,希望社区可以提供帮助。
我正在编写一个管理“Lead”对象的应用程序。(这些是销售线索。)我的程序的一部分将从文本文件中导入线索。现在,文本文件包含许多潜在的潜在客户,其中一些我想要导入,而另一些我不想导入。
为了便于编程(和使用),我将文本文件解析为 List<Lead> 对象,并使用 DataGridView 通过设置 DataGridView 的 DataSource 属性来显示潜在客户。
我想要做的是在网格中添加一个名为“导入”的列,并带有一个复选框,用户可以选中该复选框以指示是否应导入每个潜在客户。
我的第一个想法是从 Lead 派生一个类:
public Class LeadWithImportCheckbox : Lead
{
bool bImport = false;
public bool Import
{
get { return bImport;}
set { bImport = value;}
}
}
但是,解析引擎会返回 Lead 对象的列表。我不能将潜在客户转换为 LeadWithImportCheckbox。这失败了:
LeadWithImportCheckbox newLead = (LeadWithImportCheckbox)LeadFromParsingEngine;
这是一个无效的演员表。
我看到的另一个选项是为 LeadWithImportCheckbox 创建一个构造函数:
public LeadWithImportCheckbox(Lead newlead)
{
base.Property1 = newlead.Property1;
base.Property2 = newlead.Property2;
....
base.Property_n = newlead.Property_n;
}
这是有问题的,原因有两个。一,Lead 对象有几十个属性,编写这个构造函数是一个 PITA。
但更糟糕的是,如果我更改了 Lead 的底层结构,我需要记得返回并更改 LeadWithImportCheckbox 的构造函数。这对我的代码维护是一个危险。
有没有更好的方法来实现我的目标?