【发布时间】:2015-01-30 10:13:56
【问题描述】:
我无法将List<Person> 绑定到DataGridView:
public class Person
{
public Person(string name, bool likesbacon)
{
Name = name;
LikesBacon = likesbacon;
}
public string Name { get; }
public bool LikesBacon { get; set; }
}
DataGridView 有 2 列,TextBoxColumn 表示名称,CheckBoxColumn 表示 LikesBacon。 DataPropertyName 设置正确,DataGridView 按预期创建。
public MyForm(List<Person> persons)
{
InitializeComponent();
dgv.AutoGenerateColumns = false;
dgv.DataSource = persons;
}
但是当我点击CheckBox 时没有任何反应(dgv 的只读属性设置为 false)。当我一步一步调试时,我发现每当鼠标悬停在DataGridView 的单元格时,只要鼠标指针位于单元格上方,调试器就会循环进入该属性。
因此,我无法通过 dgv 更改 Person 的属性。我做错了什么?
【问题讨论】:
-
你能提供一个Short, Self Contained, Correct (Compilable), Example吗?否则很难说出发生了什么。也许
LikesBacon是您真实代码中的只读属性?也许某些事件处理程序正在做某事?
标签: c# datagridview