2016-01-06 44 views
-2

我有一个基类(人)唯一的财产2推导类(person_registered)和衍生化类(person_not_registered 我有与内置物混合一**名单person_registered和person_not_registered **C#的DataGridView自动生成栏显示基类的

我有一个DataGridView,为展会的名单,我已经设置dataGridView.Datasource =注册表(名单),与dataGridView.autogeneratecolumns =真;

但dataGridView只显示基类属性的列和不显示我派生类的属性

为什么?

+1

,如果你做的是从人的派生另一个类,会发生什么并将其添加到人员列表中?你希望它能够显示这个班的属性吗?如果他们不同于从另一个人派生出来的类别呢? – dugas

+1

如果您真的要显示与您的问题和/或问题有关的所有相关代码,会发生什么情况? – MethodMan

+0

因为你使用List(Person class)作为DataSource.Show代码,很难理解。 – Fabio

回答

1

它不显示,因为你拥有它倒退。

应该Person : RegisteredRegistered : Person

尝试这些类:

public class Person : Registered 
{ 
    public int ID { set; get; } 
    public string FirstName { set; get; } 
    public string LastName { set; get; } 
} 

public class Registered 
{ 
    public DateTime DateOfRegister { set; get; } 
} 

然后填写你的dataGridView是这样的:

// Create the Data 
List<Person> myData = new List<Person>(); 
myData.Add(new Person() { ID = 5, FirstName = "Jamie", LastName = "White", DateOfRegister = Convert.ToDateTime("Dec 25, 2015") }); 
myData.Add(new Person() { ID = 10, FirstName = "Mike", LastName = "Smith", DateOfRegister = Convert.ToDateTime("Jan 5, 2016") }); 
myData.Add(new Person() { ID = 25, FirstName = "Joe", LastName = "Yang", DateOfRegister = Convert.ToDateTime("Feb 28, 2016") }); 

// Pass the data to the dataGrid 
dataGridView1.DataSource = myData; 
0
Public **class person** 
{String *Name*; String *Surname*;} 

Public **class registered:person** 
{ datetime *dateOfRegister*;} 

public **class registry:list<person>** 
{ public new void Add(Person item) 
....} 

形式电网:

dgvNotRegister.DataSource = this.anagrafica; //list of person<br> 
dgvNonRegister.AutoGenerateColumns = true; 

dgvNotRegister **show**: 
Name Surname 

但不是:show dateOfRegister

+0

真的吗? Class Person只包含'Name'和'Surname'属性。你的'DataGridView'的数据源是'List '。这就是为什么datagridview不会生成'dateOfRegister'。将数据源更改为'列表' – Fabio