我将如何将以下对象--CAR--绑定到网格视图?
public class Car
{
long Id {get; set;}
Manufacturer Maker {get; set;}
}
public class Manufacturer
{
long Id {get; set;}
String Name {get; set;}
}
原始类型很容易绑定,但我没有办法为Maker显示任何内容。我希望它能显示制造商的名字。有可能吗?
怎么做呢?我是否也必须将ProducturerId存储在汽车中,然后设置一个包含制造商列表的lookupEditRepository?
发布于 2018-04-09 13:37:49
是这样的:
private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridView grid = (DataGridView)sender;
DataGridViewRow row = grid.Rows[e.RowIndex];
DataGridViewColumn col = grid.Columns[e.ColumnIndex];
if (row.DataBoundItem != null && col.DataPropertyName.Contains("."))
{
string[] props = col.DataPropertyName.Split('.');
PropertyInfo propInfo = row.DataBoundItem.GetType().GetProperty(props[0]);
object val = propInfo.GetValue(row.DataBoundItem, null);
for (int i = 1; i < props.Length; i++)
{
propInfo = val.GetType().GetProperty(props[i]);
val = propInfo.GetValue(val, null);
}
e.Value = val;
}
}
可以在列的DataPropertyName中使用熟悉的语法“ParentProp.Child Prop.Grandchild Prop”。
发布于 2018-04-09 14:15:48
可以创建TypeDescriptionProvider来完成嵌套绑定。
https://stackoverflow.com/questions/-100008014
复制相似问题