我遇到了使用绑定源在网格视图中显示值的问题。我有两个模型}
return sdn.DeviceNumber;
和Company
。
Partners
,PartnerId
和FirstName
。 我已经显示了公司信息和合作伙伴的名字,如上所示。
现在,我需要将合作伙伴的第一个姓名和姓氏显示为LastName
。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
选项1 - CellFormatting
作为一种选择,您可以使用CellFormatting
DataGridView
事件并显示所需的值:
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()
作为另一个选项,您可以覆盖ToString()
类的Partner
方法,并在列中显示Partner
:
public override string ToString()
{
return string.Format("{0} {1}", this.FirstName, this.LastName);
}
答案 1 :(得分:0)
创建返回格式化全名的属性并将此绑定到网格单元格。您可以使用多绑定,但需要额外的转换器,例如返回(作为您的附加属性)格式化字符串。