我已经注意到这两种在winforms中实现数据绑定的方法。但是,我想知道哪一种更受欢迎(就整体性能而言,例如设计时间,效率?据我所知,这两个是:
BindingSource as BindingSource:
this.textBox1.DataBindings.Add(new Binding("Text", this.myBindingSource, "Augend", true));
使用表单的属性窗口可以在设计时轻松实现,并让它自动生成代码。
使用INotifyPropertyChanged
更新控件,只需调用OnPropertyChanged
而不使用严格PropertyName
值(这对我来说似乎很失望)
BindingSource作为ViewModel:
this.textBox1.DataBindings.Add(new Binding("Text", this.myViewModel, "Augend", true));
在没有自动生成和ProeprtyName
ViewModel匹配
使用INotifyPropertyChanged
但更新控件PropertyName
应与对象的Property
相同(以某种方式给出感觉保证而不是前一个保险。
我开始更倾向于将BindingSource作为ViewModel,但我认为如果使用BindingSource作为BindingSource,应用程序的控件设计者会更容易。我相信控制和绑定将会失去耦合。他可以将控件更改为他想要的任何内容,只需使用其属性窗口绑定数据,而不是潜入代码并手动更改其中的设置。
答案 0 :(得分:1)
但是,我想知道哪一个更受欢迎(就整体性能而言,例如设计时间,效率?
很快,没有首选的。
BindingSource
或类似的中间人之外别无选择。 BindingSource
本身只不过是一个数据源适配器,它在设计时绑定到类型(或小数据模型),并绑定到真正的实例在运行时。