C# 通过Control.DataBinding绑定数据 问题

Arestain 2011-09-30 08:46:50
当使用类似 textBox1.DataBindings.Add("Text", textBox2, "Text", false, DataSourceUpdateMode.OnPropertyChanged);语句进行绑定时,两个textbox控件内容是相互关联的,即改变一个的内容另一个随之改变。
现使用自定义类如:
class mycalss
{
public string Text
{
get;
set;
}
}
myclass a = new myclass();
再进行相似的绑定 textBox1.DataBindings.Add("Text", a, "Text", false, DataSourceUpdateMode.OnPropertyChanged);则只能够显示值,不能相互关联,一个值改变另一个未变化。

请教各位高手这种自定义类是否能进行绑定,如果能如何实现类似2个TextBox那样的相互关联??
...全文
293 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pxiaofan 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
当使用类似 textBox1.DataBindings.Add( "Text ", textBox2, "Text ", false, DataSourceUpdateMode.OnPropertyChanged);语句进行绑定时,两个textbox控件内容是相互关联的,即改变一个的内容另一个随之改变。
现使用自定义类如:
……
[/Quote]

问题可能出在 a 为局部变量, 如果 a 为 字段是可以绑定的。 而且你局部变量绑定也没意义的哦,函数结尾就出栈了。
pxiaofan 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
当使用类似 textBox1.DataBindings.Add( "Text ", textBox2, "Text ", false, DataSourceUpdateMode.OnPropertyChanged);语句进行绑定时,两个textbox控件内容是相互关联的,即改变一个的内容另一个随之改变。
现使用自定义类如:
……
[/Quote]

问题可能出在 a 为局部变量, 如果 a 为 字段是可以绑定的。 而且你局部变量绑定也没意义的哦,函数结尾就出栈了。
cmy0891 2011-09-30
  • 打赏
  • 举报
回复
DataSourceUpdateMode.OnPropertyChanged你只要设置这个属性了,应该不会啊!是不是你绑定的类型不对啊!
sunny906 2011-09-30
  • 打赏
  • 举报
回复
可以用TextChanged

private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox3.Text = textBox2.Text;
}

private void textBox3_TextChanged(object sender, EventArgs e)
{
textBox2.Text = textBox3.Text;
}
sunny906 2011-09-30
  • 打赏
  • 举报
回复
可以用TextChanged

private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox3.Text = textBox2.Text;
}

private void textBox3_TextChanged(object sender, EventArgs e)
{
textBox2.Text = textBox3.Text;
}
ohkuy 2011-09-30
  • 打赏
  • 举报
回复
简单点用WPF,有一个依赖属性轻松搞定
ohkuy 2011-09-30
  • 打赏
  • 举报
回复
一种比较简单的方法是使用WPF,
有一个依赖属性轻松解决
Arestain 2011-09-30
  • 打赏
  • 举报
回复
顶一下
Arestain 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cmy0891 的回复:]

DataSourceUpdateMode.OnPropertyChanged你只要设置这个属性了,应该不会啊!是不是你绑定的类型不对啊!
[/Quote]

什么样的类型是正确的呢?
textBox1.DataBindings.Add( "Text ", textBox2, "Text ", false, DataSourceUpdateMode.OnPropertyChanged);这句话可以;
textBox1.DataBindings.Add( "Text ", a, "Text ", false, DataSourceUpdateMode.OnPropertyChanged);这句话不可以,类型上一个是control一个是自定义类,难道非control不可么?

110,536

社区成员

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

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

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