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));
可以在设计时使用表单的属性 window 轻松实现,并让它自动生成代码。
通过使用 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,应用程序的控件设计者会容易得多。我相信控制和绑定会松耦合。他可以将控件更改为他想要的任何内容,只需使用其 属性 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(或小型数据模型),并绑定到真正的 实例在运行时。
我在winforms.However中注意到了这两种实现数据绑定的方式,我想知道其中哪一种更受欢迎(就整体性能而言,例如设计时间,效率?据我所知知道,这两个是:
BindingSource 作为 BindingSource:
this.textBox1.DataBindings.Add(new Binding("Text", this.myBindingSource, "Augend", true));
可以在设计时使用表单的属性 window 轻松实现,并让它自动生成代码。
通过使用
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,应用程序的控件设计者会容易得多。我相信控制和绑定会松耦合。他可以将控件更改为他想要的任何内容,只需使用其 属性 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(或小型数据模型),并绑定到真正的 实例在运行时。