所以我有两个列表(Members
和RealEstate
)
我希望我的DataGridView
显示写入我拥有的文本框中的MemberID
的结果。
结果包括:
MemberID
,FirstName
从Members
列表中和EstateType
,EstatePrice
,EstateArea
从RealEstate
列表中
我的代码如下:
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));
您需要将两个列表中匹配条目中的字段合并到DataSet
或DataTable
中,或者合并到包含两种输入类型字段的新类的项目列表中。
为此,Member
或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();
现在,您可以将此列表指定为DataGridView
的DataSource
:
dgvProperty.DataSource = memberRealEstateList;