我DataGridView
与List<myClass>
绑定DataSource
。
但是当我将“AllowUserToAddRows
”属性设置为“True”时,没有任何内容出现。
我尝试将DataSource
更改为BindingList<myClass>
并且进展顺利。
我想知道是否应该将List<>
替换为BindingList<>
,或者有更好的解决方案。
答案 0 :(得分:21)
myClass
是否有公共无参数构造函数?如果没有,您可以从BindingList<T>
派生并覆盖AddNewCore
来调用您的自定义构造函数。
(编辑)或者 - 只需将您的列表包装在BindingSource
中,它可能有效:
using System;
using System.Windows.Forms;
using System.Collections.Generic;
public class Person {
public string Name { get; set; }
[STAThread]
static void Main() {
var people = new List<Person> { new Person { Name = "Fred" } };
BindingSource bs = new BindingSource();
bs.DataSource = people;
Application.Run(new Form { Controls = { new DataGridView {
Dock = DockStyle.Fill, DataSource = bs } } });
}
}