我需要的文本框,这将反映数据绑定字符串的变化。我尝试了以下代码:数据绑定文本框并不反映源变化
public partial class Form1 : Form
{
string m_sFirstName = "Brad";
public string FirstName
{
get { return m_sFirstName; }
set { m_sFirstName = value; }
}
public Form1()
{
InitializeComponent();
textBox1.DataBindings.Add("Text", this, "FirstName");
}
private void buttonRename_Click(object sender, EventArgs e)
{
MessageBox.Show("before: " + FirstName);
FirstName = "John";
MessageBox.Show("after: " + FirstName);
}
}
启动应用程序后,textBox1正确填充了Brad。 我点击按钮,改名姓为“约翰”(第二消息框证实了这一点)。 但textBox1仍然充满了布拉德,而不是约翰。为什么?什么会使这项工作?
我在我的例子了文本框,但也有数据绑定控件只读(列表框,标签,。 ..)。真的是“label1.DataBindings.Add(”Text“,this,”FirstName“);”与“label1.Text = FirstName;”相同???我仍然相信必须存在双面约束。 – jing 2009-10-26 09:21:13
@Jing,我的回答不适合您的需要。为了工作,需要在添加另一个实例之前删除数据绑定实例。其他答案给了你更好的设计。 – 2009-10-26 10:07:17