BindingSource 作为 BindingSource 与 BindingSource 作为 ViewModel

BindingSource as BindingSource vs BindingSource as ViewModel

我在winforms.However中注意到了这两种实现数据绑定的方式,我想知道其中哪一种更受欢迎(就整体性能而言,例如设计时间,效率?据我所知知道,这两个是:

BindingSource 作为 BindingSource:

this.textBox1.DataBindings.Add(new Binding("Text", this.myBindingSource, "Augend", true));

BindingSource 作为 ViewModel:

this.textBox1.DataBindings.Add(new Binding("Text", this.myViewModel, "Augend", true));

我开始更倾向于将 BindingSource 用作 ViewModel,但我认为如果使用 BindingSource 作为 BindingSource,应用程序的控件设计者会容易得多。我相信控制和绑定会松耦合。他可以将控件更改为他想要的任何内容,只需使用其 属性 windows 绑定数据,而不是深入研究代码并手动更改那里的设置。

However, I would like to know which one of them is more preferred (In terms of overall performance e.g design time, efficiency?

暂时没有首选。

  • 性能差异(如果有)可以忽略不计。数据绑定中涉及很多反射,以便计算一些额外的委托调用(这些天通常没有人这样做)。
  • 设计时支持如何,这取决于要求,不能用作 "overall performance" 因素。例如,许多业务应用程序更喜欢运行时自动 UI 通过代码生成,使用规则和属性(如数据注释),因此根本不需要设计时支持。另一方面,如果您 确实需要 设计时支持,除了使用 BindingSource 或类似的中介之外别无选择。 BindingSource 本身不过是一个数据源适配器,它在设计时绑定到 type(或小型数据模型),并绑定到真正的 实例在运行时。