所以我有一个数据 GridView 。
通常我可以创建对象的绑定(bind)列表,它会正确显示所有数据和列
例如
BindingList<Customer> CustomerList = new BindingList<Customer>();
myDataGridView.DataSource = CustomerList;
并且它将为 Customer 中具有 getter 的每个属性显示一列。 它还将为每个对象显示一行。
完美的结果。
现在在我当前的场景中,我有这些对象:
public class Reservedele
{
public int Rnr { get; private set;}
public string Navn { get; private set;}
public double Pris { get; private set;}
public string Type { get; private set;}
public Reservedele(int rnr, string navn, double pris, string type)
{
Rnr = rnr;
Navn = navn;
Pris = pris;
Type = type;
}
}
public class IndkøbsKurvReservedele
{
public Reservedele Reservedel { get; private set;}
public int Antal { get; private set; }
public double Pris { get; private set; }
public IndkøbsKurvReservedele(Reservedele reservedel, int antal, double pris)
{
Reservedel = reservedel;
Antal = antal;
Pris = pris;
}
}
如果我这样做:
BindingList<IndkøbsKurvReservedele> ReserveDeleListeIndKøbsKurv = new BindingList<IndkøbsKurvReservedele>();
myDataGridView.DataSource = ReserveDeleListeIndKøbsKurv;
它不会工作:( 错误是datagridview显示:
- 对象本身
- 安塔尔
- 校长
我如何指示 datagridview 我希望它具有 Reservedel 中的属性,后跟 IndkøbsKurvReservedele 中的属性作为 header ?
作为引用,Reservedel 的意思是“备件”,IndkøbsKurvReservedel 的意思类似于“ShoppingBasketOfSpareParts”。 Antal 的意思是“数量”,意思是有多少。 抱歉,外部变量命名。
编辑:我还有一个问题:如何使 Rnr 属性不显示为列?
请您参考如下方法:
从技术上讲你不能,数据源不绑定(bind)任何嵌套属性。
但您始终可以通过在父对象中公开子对象的属性来解决此问题。
