很抱歉,如果有人问这个,但我找不到。 我正在尝试将文本框绑定到数据源,但是当数据源发生更改时,文本框不会更新...这是我的代码,任何人都可以建议我做错了吗? 谢谢!
public Controller()
{
myForm.databaseTextBinding = new Binding("Text", ac, "connString");
myForm.databaseTextBinding.ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;
myForm.setupSources();
}
public partial class Form1 : Form
{
public Binding databaseTextBinding;
public void setupSources()
{
DatabaseTextBox.DataBindings.Add(databaseTextBinding);
}
}
更新: 我现在可以制作将要更新的文本框。我有一个新问题。数据源本身通过我创建一个新的ac对象而改变。但是,如果我这样做,绑定现在更长时间更新。我考虑过,也许房产没有变化,但我确信它是!
例如,这是有效的
ac.cString = "ABC";
ac.cString = "DEF";
但这不......
ac = new AccessConnector(path);
ac.cString = "ABC";
ac.cString = "DEF";
答案 0 :(得分:1)
假设您的Binding
将BindingSource
绑定到文本框,则需要在代码中添加BindingSource.ResetBindings()
。
答案 1 :(得分:1)
绑定对象的类型(即ac)是否实现了INotifyPropertyChanged?如果是这样,属性“connString”在更改时会引发PropertyChanged事件吗?
如果没有,您可以查看INotifyPropertyChanged sample
编辑:
该部分不起作用是由于您没有更改绑定到新对象 - 它仍然绑定到旧对象。当您将新对象分配给引用变量ac时,对原始对象的绑定不会更改 - 因此它仍然指向上一个对象。