【发布时间】:2015-04-07 21:48:47
【问题描述】:
我一直在研究这个主题几个小时,但似乎无法找到解决方案或合理解释它为什么不起作用。我找到了类似的帖子,但没有一个解决我正在寻找的内容。 This 帖子在理解它的工作原理方面对我帮助最大。我什至能够使用 TextBox 成功地对此进行测试。问题是我想为我的 DataGridview 使用这个功能。我想在 DataGridView 中进行更改,但在单击“确定”按钮之前不会更新列表。我一直在使用这个测试设置:
简单类:
public class Person
{
public int Age { get; set; }
public int Height { get; set; }
public Animal(int age, int height)
{
Age = age;
Height = height;
}
}
我像往常一样设置数据绑定。来自我的表单构造函数的片段:
public Form1()
{
InitializeComponent();
People = new List<Person>();
personBindingSource.DataSource = People;
personBindingSource.RaiseListChangedEvents = true;
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = personBindingSource;
dataGridView1.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.Never;
}
我用一个值编辑单元格,然后有一个调用 Binding.WriteValue() 的按钮。底层数据源不断随着单元格的变化而自动更新(尽管我已经做到了,但它的行为就像 OnValidation 一样,从来没有在我能想到的任何地方实现)。有什么我遗漏的,或者我必须手动实现吗?
【问题讨论】:
-
@rob 我确实遇到过。问题是 CancelEdit 仅适用于当前的编辑操作。我不一定要寻找一种方法来编辑每个编辑操作。更重要的是,我只需要 datagridview 就像我的文本框示例一样。我可以根据需要多次编辑文本框,但在执行 WriteValue() 之前,这些值不会传播。谢谢你的评论
标签: c# winforms datagridview