Взгляните на WPF toolkit , он содержит сетку, соответствующую вашим требованиям.
Этот инструментарий создан Microsoft и является частью инициативы Microsoft Shared Source Initiative (см. Предоставленную мной ссылку).
Это не поддерживается моим Microsoft, поэтому, если вы получаете ошибку, вы можете использовать их форумы, но не вызывать поддержку MS.
Если вы хотите сделать это самостоятельно, например, вы можете написать некоторый код, который принимает List<T>
, вы получаете универсальный тип, получаете свойства, перебираете их, пишете заголовки столбцов, перебираете все элементы в списке и напишите все свойства.
Я написал этот код некоторое время назад, чтобы записать List в таблицу HTML, надеюсь, это будет полезно:
public void PrintList<T>(List<T> list)
{
if(null!=list.FirstOrDefault())
{
Type t = typeof(list[0]);
PropertyInfo[] properties = t.GetProperties();
// properties = list of all properties.
print("<table><tr>");
foreach(var property in properties)
{
// print property title
print(string.Format("<th>{0}</th>", property.Name));
}
print("</tr>");
foreach(var item in list)
{
print("<tr>");
foreach(var property in properties)
{
var propertyValue = t.InvokeMember(property.Name, BindingFlags.GetProperty, null, item, new object[] {});
print(string.Format("<td>{0}</td>", propertyValue));
}
print("</tr>");
}
print("</table>");
}
}