Hi,
I have problem with this code:
public partial class MainForm : Form
{
// private List companies = new List();
private List companies = new List(); // <============== PROBLEM !!!
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void MainFormLoad(object sender, EventArgs e)
{
companies.Add(new Company(1, "Company 1", "Address 1", "Email 1"));
companies.Add(new Company(2, "Company 2", "Address 2", "Email 2"));
companies.Add(new Company(3, "Company 3", "Address 3", "Email 3"));
companies.Add(new Company(4, "Company 4", "Address 4", "Email 4"));
companies.Add(new Company(5, "Company 5", "Address 5", "Email 5"));
// bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1;
dataGridView1.AutoGenerateColumns = false;
bindingSource1.DataSource = companies;
// bindingSource1.AllowNew = true;
dataGridView1.Columns.Add("CompanyID","ID");
dataGridView1.Columns["CompanyID"].DataPropertyName = "CompanyID";
dataGridView1.Columns.Add("CompanyName","Name");
dataGridView1.Columns["CompanyName"].DataPropertyName = "CompanyName";
dataGridView1.Columns.Add("Address","Address");
dataGridView1.Columns["Address"].DataPropertyName = "Address";
dataGridView1.Columns.Add("EMail","E-Mail");
dataGridView1.Columns["EMail"].DataPropertyName = "EMail";
}
}
public class BaseCompany {}
public class Company : BaseCompany
{
private int companyID;
private string companyName;
private string address;
private string email;
public int CompanyID
{
get { return companyID; }
set { CompanyID = value; }
}
public string CompanyName
{
get { return companyName; }
set { companyName = value; }
}
public string Address
{
get { return address; }
set { address = value; }
}
public string Email
{
get { return email; }
set { email = value; }
}
public Company()
{
companyID = 0;
companyName = string.Empty;
address = string.Empty;
email = string.Empty;
}
public Company(int pID, string pName, string pAddress, string pEmail)
{
companyID = pID;
companyName = pName;
address = pAddress;
email = pEmail;
}
}
When I create field "companies" as List all works fine but when I create it as List DataGridView doesn't show the data.
Why DataGridView doesn't recognize that elemants in the list are actually from type "Company" not from "BaseCompany"?