首页 > 解决方案 > 如何在 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);
    }
}

这些值被完美地传递并呈现它,但仍然给出空异常。这里可能是什么问题

标签: c#winformsdatagridview

解决方案


尝试如下:

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();

推荐阅读