我正在尝试使用Reflection
将对象显示到DataGridView中到目前为止,一切都顺利进行,但问题是某些对象的属性是列表。如何调整DataGridView以显示列表?
public void SetDataSource(PluginBase plugin)
{
dgvProperties.Rows.Clear();
List<DataGridViewRow> rows = new List<DataGridViewRow>();
foreach (PropertyInfo info in typeof(PluginBase).GetProperties(BindingFlags.Public|BindingFlags.Instance))
{
object value = plugin.GetType().GetProperty(info.Name).GetValue(plugin, null);
object[] o = new object[2];
o[0] = info.Name;
o[1] = value;
DataGridViewRow dgvr = new DataGridViewRow();
dgvr.CreateCells(dgvProperties, o);
rows.Add(dgvr);
}
dgvProperties.Rows.AddRange(rows.ToArray());
}
答案 0 :(得分:1)
我找到了一个非常好的教程,可以帮助你:http://www.switchonthecode.com/tutorials/csharp-tutorial-binding-a-datagridview-to-a-collection
我认为您不能自动让DataGridView
单元格显示列表,但是一旦您的反射检测到它的列表,您就可以执行此操作,然后您可以手动执行以下操作:http://msdn.microsoft.com/en-us/library/aa480727.aspx < / p>