我有一个方法,除了一些对象,并使用反射获取它的每个属性。属性名称设置为列标题,并绑定到应该位于其下的单元格中的值。正在显示标题,但单元格中的值不是。当我尝试向datagrid添加一个值,将它绑定到以前设置的列时,它不会出现在表中。 告诉我,我在这里做错了,拜托!
以下是此方法的示例:
private void Output<T>(T obj)
{
foreach (var prop in obj.GetType().GetProperties())
{
var column = prop.Name;
CarDetailsGrid.Columns.Add(new DataGridTextColumn()
{
Header = column,
Binding = new Binding(column)
});
var value = prop.GetValue(obj);
CarDetailsGrid.Items.Add(new { column = value != null ? value : "" });
}
}
答案 0 :(得分:0)
添加行和列有所不同。尝试执行以下操作:
private void Output<T>(List<T> objList)
{
foreach (var prop in T.GetProperties())
{
var column = prop.Name;
CarDetailsGrid.Columns.Add(new DataGridTextColumn()
{
Header = column,
Binding = new Binding(column)
});
}
if (objList != null && objList.Any())
{
foreach(var currObj in objList)
{
CarDetailsGrid.Items.Add(currObj);
}
}
}