如何在datagridview中显示模型数据?

时间:2019-01-22 06:18:20

标签: c# winforms datagridview

我想显示从一种形式传递到另一种形式的模型数据。

在第一种形式中,我将数据保存到数据库中,同时我又将数据恢复到模型中。 现在,我想将此模型发送到新表单。 将其发送到新表单后,我想在Datagridview中显示它。 我做的其余事情都是正确的,但是现在我无法在datagridview中显示它。 老实说,我不知道如何在数据网格视图中显示模型。

company = GlobalConfig.Connections.CreateCompany(company);
            // MessageBox.Show(Convert.ToString(company.id));
            AddInformationForm form = new AddInformationForm(company);
            form.ShowDialog();

公司是一个典范。

public class CompanyModel
{
    public int id { get; set; }
    public int Mohre { get; set; }
    public string CompanyNameEn { get; set; }
    public string CompanyNameAr { get; set; }
    public int CompanyLicense { get; set; }
    public DateTime CompanyLicenseExpiry { get; set; }
    public int MOI { get; set; }
    public DateTime MOIExpiry { get; set; }
    public ContactModel Contacts { get; set; }
    public SectorModel Sector { get; set; }
    public CompanyCategoryModel Category { get; set; }

    public CompanyModel()
    {

    }
}

如何在datagridview中显示它。

而且当我只想将值分配给标签时,它为我提供了空异常引用

 public partial class AddInformationForm : Form
{
    private CompanyModel company = new CompanyModel();

    public AddInformationForm()
    {
        InitializeComponent();
    }

    public AddInformationForm(CompanyModel cmp)
    {
        company = cmp;

    }

    private void AddInformationForm_Load(object sender, EventArgs e)
    {
        CompanyNameLabel.Text = company.CompanyNameAr;
        SectorLabel.Text = company.Sector.Name;
        CategoryLabel.Text = company.Category.CategoryName;
        LicenseLabel.Text = Convert.ToString(company.CompanyLicense);
        MohreLabel.Text = Convert.ToString(company.Mohre);
        MOILabel.Text = Convert.ToString(company.MOI);
    }
}

这些值可以很好地传递,并且也可以显示,但仍然给出null异常。

1 个答案:

答案 0 :(得分:0)

尝试如下:

dataGridView1.DataSource = new List<CompanyModel> { company };

var listCompanies = new List<CompanyModel> { company };

dataGridView1.DataSource = listCompanies.Select(c =>
new
{
    License = c.CompanyLicense,
    Name = c.CompanyNameAr,
    SectorName = c.Sector.Name//Todo:set your property
}).ToList();