数据绑定到自写类的问题,触发属性变更的事件可否重定义?

火鸟李国平 2005-10-19 04:06:40
我在WinForm下开发了自己的一个类,用
textBox1.DataBindings.Add("Text",MyObject,"Text");
的方式进行了数据绑定,确实可以实现textBox1.Text属性改变时,自动更改我MyObject对象的Text属性,

但我设了断点观察:
只有textBox1控件失去焦点时,新的.Text的值才会被通知到MyObject.Text;

而事实上我希望textBox1.Text值改变的通知是像TextChanged这样的事件中通知给MyObject.Text属性去更新,而不是非得等textBox1失去焦点了,才去通知MyObject.Text,也就是说我希望尽管现在焦点仍然在textBox1上,我连续输入了N个字符,MyObject.Text就被逐一通知了四次值的改变;

一句话来说就是:数据绑定触发数据绑定的事件可不可以不是Leave,而是TextChange,也就是数据绑定可不可以重定义触发数据源改变的那个事件呢?

真不知道我说明白了没有,大家凑和着看吧
...全文
145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
火鸟李国平 2006-02-08
  • 打赏
  • 举报
回复
UP
lidong6 2006-02-08
  • 打赏
  • 举报
回复
楼主真是执着.
xjaifly 2005-11-11
  • 打赏
  • 举报
回复
你可以在你的基类里面的继承IBindingList 里面有ListChanged事件
ListChangedEventArgs 有参数 当你的值改变时 就触发事件!
具体看MSDN 的IBindingList
Sidneylee 2005-11-10
  • 打赏
  • 举报
回复
数据使用控件规定在失去焦点后才能自动更新内存数据,为什么?TxtBox类如何与数据源通讯?该学什么?
marvelstack 2005-11-10
  • 打赏
  • 举报
回复
自定义,
http://blog.joycode.com/zhanbos/archive/2005/11/06/66492.aspx
火鸟李国平 2005-11-04
  • 打赏
  • 举报
回复
大家没明白我的问题,我是说默认的数据绑定是在控制的Leave事件时才被更新到数据源,我是想重定义成控件的TextChange或SelectIndexChange或ValueChange时就更新到数据源.用什么方法可以做到
jimh 2005-10-19
  • 打赏
  • 举报
回复
为了通用,这是必须的,因为数据类型有可能不是string,例如是int,那么当你输入一个字符a,根本没办法更新到数据源里,一般是响应Validate()事件做检查。
fangbuge 2005-10-19
  • 打赏
  • 举报
回复
你可以在TEXTCHANGE事件中写绑定过程.
Example945 2005-10-19
  • 打赏
  • 举报
回复
你说的有点晕 不过大体还是看清楚了,你可以换个事件写吗!你可以试一下KeyUp()!
火鸟李国平 2005-10-19
  • 打赏
  • 举报
回复
我倒也是能理解数据绑定技术在控件失去焦点时才去同步数据源的理由,因为我们大多数的程序数据源就是数据库,只把最后的状态更新回去就行了,而我的MyObject不是指向数据库而是一个普通的类对象的,需要实时地跟着绑定控件的Text属性来变化,所以就有需要重定义数据变更通知所用的事件,让控件的值与对象的值实时同步而不是失去焦点时才同步的需求了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧