其他分享
首页 > 其他分享> > CodeGo.net>如何使用BindingSource在DataGridView的单列中绑定导航属性(二级模型的两个属性)?

CodeGo.net>如何使用BindingSource在DataGridView的单列中绑定导航属性(二级模型的两个属性)?

作者:互联网

我遇到了使用绑定源在网格视图中显示值的问题.我有两个模型作为公司和合作伙伴.

>我在公司模型中有PartnerId,
>并且合作伙伴模型具有名字和姓氏.

如上所述,我已经显示了公司信息和合作伙伴的名字.

现在,我需要在同一列中将伙伴的名字和姓氏都显示为PartnerName.谁能帮我解决这个问题?

解决方法:

选项1-单元格格式化

作为一个选项,您可以使用DataGridView的CellFormatting事件并显示所需的值:

void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    //I Suppose you want to show full name in column at index 3
    if(e.RowIndex>=0 && e.ColumnIndex==3)
    {
        var company = (Company)(this.dataGridView1.Rows[e.RowIndex].DataBoundItem);
        if (company != null && company.Partner != null)
            e.Value = string.Format("{0} {1}", company.Partner.FirstName,
                                                company.Partner.LastName);
    }
}

选项2-ToString()

作为另一个选择,您可以覆盖Partner类的ToString()方法,并在列中显示Partner:

public override string ToString()
{
    return string.Format("{0} {1}", this.FirstName, this.LastName);
}

标签:bindingsource,datagridview,c,entity-framework,winforms
来源: https://codeday.me/bug/20191118/2030663.html