将两个列表绑定到一个数据网格视图

时间:2015-05-01 19:07:49

标签: c#

所以我有两个列表(MembersRealEstate

我希望我的DataGridView显示我在文本框中写的MemberID的结果。

结果包括:

    来自MemberID列表和的
  • FirstNameMembers 来自EstateType列表
  • EstatePriceEstateAreaRealEstate

我的代码如下:

List<Members> member = FrmSell.MembersList.FindAll(owner => owner.MemberID == int.Parse(FrmSell.txt));
List<RealEstate> realestate = FrmSell.EstateList;
dgvProperty.DataSource = member;
dgvProperty.DataSource = realestate;

当我点击我的按钮时,它只显示第二个列表中的结果,即RealEstate列表,而不是第一个列表,我希望将两个列表的结果显示在一个数据网格视图中。

如果您需要进一步澄清,请告诉我。

列表中的示例数据:

//Sample data
Members m1 = new Members(001,"Ahmed","Muhairy",503299999);
MembersList.Add(new Members(002,"Khalfan","AlMarri",502344556));

RealEstate r1 = new RealEstate("Villa",35000,"Quoz",4,2);
EstateList.Add(new RealEstate("House",55000,"Sharjah",6,4));

1 个答案:

答案 0 :(得分:1)

您需要将两个列表中匹配条目的字段合并为System.gc()DataSet,或合并为包含两个输入字段的新类的项目列表类型。

为了使其正常工作,DataTableMember类中必须有一个字段,允许匹配两个输入列表中的条目。

举个例子,我将假设以下内容:您的RealEstate类有一个RealEstate字段,其值标识OwnerID中的一个成员,因为它是相等的成员的MembersList值。

现在您可以执行以下操作:

MemberID

创建一个新列表,结合其他两个条目:

// This combines the fields from Member and RealEstate
// for a row to be displayed in the data grid.
public class MemberRealEstate
{
    public int MemberID { get; set; }
    public string MemberName { get; set; }
    public int EstateID { get; set; }
    public string EstateType { get; set; }
    public double EstatePrice { get; set; }
    public string EstateArea { get; set; }
} 

现在,您可以将此列表指定为var forMemberId = int.Parse(FrmSell.txt); var memberRealEstateList = (from estate in FrmSell.EstateList from member in FrmSell.MembersList where member.MemberID == forMemberId && member.MemberID == estate.OwnerID select new MemberRealEstate() { MemberID = member.MemberID, MemberName = member.FirstName + " " + member.LastName, EstateID = estate.EstateID, EstateType = estate.EstateType, EstatePrice = estate.EstatePrice, EstateArea = estate.EstateArea }).ToList(); 的<{1}}:

DataSource