所以我有两个列表(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));
答案 0 :(得分:1)
您需要将两个列表中匹配条目的字段合并为System.gc()
或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();
的<{1}}:
DataSource