我遇到了使用绑定源在网格视图中显示值的问题.我有两个模型作为公司和合作伙伴.
>我在公司模型中有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);
}