尝试将列表加载到DataGridView单元格中

时间:2010-08-06 23:55:10

标签: c# .net reflection list datagridview

我正在尝试使用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());

}

1 个答案:

答案 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>