首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinForms,BindingSource,防止CurrentItem改变

WinForms,BindingSource,防止CurrentItem改变
EN

Stack Overflow用户
提问于 2009-09-09 16:04:03
回答 2查看 4.9K关注 0票数 0

如何防止bindingSource当前项的更改?(不存在带有cancel参数的更改事件.)

这是一种设想:

databinding)

  • Bindings
  • I有一个dataGridView,文本框位于相同的窗体上。当用户使用DataGridView选择另一行时,使用文本框来更改数据源中的值(使用标准的
  • 手动编写(在单击保存按钮之后)
  • ,更改bindingSource.Current属性,并使用选定行的值更新文本框。用户输入的更改丢失。

有什么办法可以防止这个问题吗?

是否可以防止bindingSource.Current属性更改?

是否有更好的选择来防止这种行为?

(禁用dataGridView显然不是一个选项)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-09 16:24:08

听起来好像您不想更改bindingSource.Current,而是想在更改当前行之前保存文本框的内容?如果您已经将集合绑定到bindingSource,那么文本框不引用该集合中当前元素中的属性吗?

我不太清楚您想要做什么,但黑暗中的一幕可能是将相同的DataSource绑定到两个不同的BindingSource对象,如下所示:

代码语言:javascript
复制
gridBindingSource.DataSource = theDataSource;
textBoxBindingSource.DataSource = theDataSource;
myDataGrid.DataSource = gridBindingSource;
firstNameTextBox.Bindings.Add (new Binding ("Text", textBoxBindingSource, "FirstName"));

但是这会很奇怪,因为如果theDataSource适合于网格控件,那么它就是具有FirstName属性的事物的集合。也许你的问题能更具体些。

如果要将文本框内容保存到当前行,请在更改ValidateChildren ()属性之前在容器上调用bindingSource.Current

票数 0
EN

Stack Overflow用户

发布于 2009-09-09 16:11:13

我有一个有点相似的框架,网格和文本框都在同一个表单上。当用户单击编辑按钮(或添加)时,我只需禁用网格视图控件本身.

MyDataGrid.Enabled = false;

继续编辑.。

如果一切顺利的话,

MyDataGrid.Enabled =真;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1400584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档