C# 访问包含另一个类的属性的类的属性 公共类客户 { 公共int id{get;set;} 公共人物CustPerson{get;set;} 公众客户() { this.CustPerson=新用户(); } } 公共阶层人士 { 公共字符串名{get;set;} 公共字符串LastName{get;set;} 公共整数{get;set;} } 私有无效按钮1\u单击(对象发送者,事件参数e) { List CustomerList=新列表(); 对于(int i=0;i

C# 访问包含另一个类的属性的类的属性 公共类客户 { 公共int id{get;set;} 公共人物CustPerson{get;set;} 公众客户() { this.CustPerson=新用户(); } } 公共阶层人士 { 公共字符串名{get;set;} 公共字符串LastName{get;set;} 公共整数{get;set;} } 私有无效按钮1\u单击(对象发送者,事件参数e) { List CustomerList=新列表(); 对于(int i=0;i,c#,C#,您只需选择CustPerson属性(Linq): 还要确保GridView已将AutoGenerateColumns设置为true。与所述过程类似,您可以设置GridView的列以显示您喜欢的任何信息 CustomerList.Add(cust.Select(c => c.CustPerson).ToArray()); 公共部分类表单1:表单 { DataGridViewCheckBoxColumn; 复选框; 公共表格1() { 初始化组件(); } 私有无效按钮1\u单击\u 1(

您只需选择
CustPerson
属性(Linq):


还要确保
GridView
已将
AutoGenerateColumns
设置为true。

与所述过程类似,您可以设置GridView的列以显示您喜欢的任何信息

CustomerList.Add(cust.Select(c => c.CustPerson).ToArray());

公共部分类表单1:表单
{
DataGridViewCheckBoxColumn;
复选框;
公共表格1()
{
初始化组件();
}
私有无效按钮1\u单击\u 1(对象发送者,事件参数e)
{
List CustomerList=新列表();

对于(inti=0;i),人们常说我们应该更喜欢组合而不是继承,但在这个(经典)在这种情况下,由于客户可能是个人,也许您应该改变您的方法,让
customer
person
派生,而不是拥有
person
属性。感谢您的帮助朋友..找到了一个简单的方法..我只保留person作为我的客户基类..这样我就可以设置base c的属性了带有派生类对象的lass属性,最后我将customer对象添加到列表中。。。
CustomerList.Add(cust.Select(c => c.CustPerson).ToArray());
     <asp:TemplateField HeaderText="First Name" SortExpression="CustPerson.FirstName">
         <ItemTemplate>
             <asp:Label ID="lblCustomerFirstName" runat="server" Text=''<%# ((Person)Eval("CustPerson")).Firstname %>''></asp:Label>
         </ItemTemplate>
     </asp:TemplateField>
     <asp:TemplateField HeaderText="Last Name" SortExpression="CustPerson.LastName">
         <ItemTemplate>
             <asp:Label ID="lblCustomerLastName" runat="server" Text=''<%# ((Person)Eval("CustPerson")).LastName %>''></asp:Label>
         </ItemTemplate>
     </asp:TemplateField>
     <asp:TemplateField HeaderText="Age" SortExpression="CustPerson.Age">
         <ItemTemplate>
             <asp:Label ID="lblCustomerAge" runat="server" Text=''<%# ((Person)Eval("CustPerson")).Age %>''></asp:Label>
         </ItemTemplate>
     </asp:TemplateField>
public partial class Form1 : Form
{
    DataGridViewCheckBoxColumn Column;
    CheckBox checkbox;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click_1(object sender, EventArgs e)
    {
        List<Customer> CustomerList = new List<Customer>();
        for (int i = 0; i <= 4; i++)
        {
            Customer cust = new Customer();
            cust.id = i;                 
            cust.FirstName = "john" + i.ToString();
            cust.LastName = "deo" + i.ToString();
            cust.Age = 20 + i;
            CustomerList.Add(cust);
        }
        dataGridView1.AutoGenerateColumns = true;
        dataGridView1.DataSource = CustomerList;            
    }
}
public class Customer:Person
{
    public int id { get; set; }       
}

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}