我在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),也就是数据绑定可不可以重定义触发数据源改变的那个事件呢?
是不是又是通过一些attribute特性标记来做到的呢?
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),也就是数据绑定可不可以重定义触发数据源改变的那个事件呢?
是不是又是通过一些attribute特性标记来做到的呢?
解决方案 »
- 求C#获取远程xml文件,并用dataset绑定,支持分页的代码
- 高分求解,如何镜像输出打印,顶贴给分
- 导入Excel
- 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
- C#多线程如何返回值?如何判断多线程都已经结束?
- C# 中用UDP通讯中碰到的问题,谢谢大家来帮忙(急.急.急)
- 在web应用程序中如何实现treeview的效果?
- WPF MVVM 一个控件如何控制另外一个控件?
- 数据库查询问题
- 使得每一次新增加的子窗体都只能位于父窗口的中间位子
- 编译时出错(Assembly attribute 'System.Runtime.InteropServices.GuidAttribute' is not valid: Assembly custom attribute 'System.Ru
- 请教高手,我的机器是win200 server 我把asp.net程序放在局域网里的另一台计算机里,而用我的机器的虚拟目录指向另一台计算机
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpovrasynchronousdelegates.htm
我认为最好的办法是继承Textbox控件,并重写TextChange事件.
{
Public TextBox ConTextBox
{
get
{
return textBox;
}
set
{
TextBox tb = value;
if (textBox != null)
{
textBox.TextChanged += new EventHandler(ConTextChanged);
}
textBox = tb;
if (null != textBox)
{
textBox.TextChanged += new EventHandler(ConTextChanged);
}
}
}TextBox textBox = null;void ConTextChanged(object sender,EventArgs e)
{
this.Text = ContextBox.Text;
}
}
{
TextBox tb = value;
if (textBox != null)
{
textBox.TextChanged += new EventHandler(ConTextChanged);
}
textBox = tb;
if (null != textBox)
{
textBox.TextChanged -= new EventHandler(ConTextChanged);//这里注销
}
}
}
{
TextBox tb = value;
if (textBox != null)
{
textBox.TextChanged -= new EventHandler(ConTextChanged);//这里注销
}
textBox = tb;
if (null != textBox)
{
textBox.TextChanged += new EventHandler(ConTextChanged);
}
}
}
继承不是个好办法,因为我有太多的控件要绑定,而不只是Textbox控件,而且似乎这个办法太笨了,希望有更好的解决办法!