【发布时间】:2010-10-28 18:15:55
【问题描述】:
public partial class Form1 : Form
{
MyClass myClass = new MyClass("one", "two");
public Form1()
{
InitializeComponent();
textBox1.DataBindings.Add("Text", myClass, "Text1", false, DataSourceUpdateMode.Never);
textBox2.DataBindings.Add("Text", myClass, "Text2", false, DataSourceUpdateMode.Never);
}
private void saveButton_Click(object sender, EventArgs e)
{
myClass.Text1 = textBox1.Text;
myClass.Text2 = textBox2.Text;
//textBox1.DataBindings["Text"].WriteValue();
//textBox2.DataBindings["Text"].WriteValue();
}
}
public class MyClass : INotifyPropertyChanged
{
private string _Text1;
private string _Text2;
public event PropertyChangedEventHandler PropertyChanged;
public string Text1
{
get { return _Text1; }
set { _Text1 = value; OnPropertyChanged(new PropertyChangedEventArgs("Text1")); }
}
public string Text2
{
get { return _Text2; }
set { _Text2 = value; OnPropertyChanged(new PropertyChangedEventArgs("Text2")); }
}
public MyClass(string text1, string text2)
{
Text1 = text1;
Text2 = text2;
}
protected void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null) PropertyChanged(this, e);
}
}
我认为我想要达到的目标非常清楚。我希望我的表单将我的两个TextBoxes 中所做的更改保存到myClass。但是,每当我在编辑两个文本框后按下保存按钮并调用saveButton_Click 时,第二个textBox2 的Text 就会返回原始文本(“两个”)。我尝试使用Binding 的WriteValue 函数,但同样的事情发生了。使用 .net 4.0。
编辑感谢您的回答,但我不需要解决方法。我可以自己找到它们。我只需要更好地了解绑定是如何工作的。我想了解为什么会这样?
【问题讨论】:
标签: c# .net winforms data-binding