gpt4 book ai didi

c# - BindingSource 作为 BindingSource 与 BindingSource 作为 ViewModel

转载 作者:行者123 更新时间:2023-11-30 12:42:20 25 4
gpt4 key购买 nike

我注意到这两种在 winforms 中实现数据绑定(bind)的方法。但是,我想知道其中哪一种更受欢迎(在整体性能方面,例如设计时间,效率?据我所知,这两种是:

BindingSource 作为 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,应用程序的控件设计者会容易得多。我相信控制和绑定(bind)会松耦合。他可以将控件更改为他想要的任何内容,只需使用其属性窗口绑定(bind)数据,而不是深入研究代码并手动更改那里的设置。

最佳答案

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

很快,没有首选。

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

关于c# - BindingSource 作为 BindingSource 与 BindingSource 作为 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34259790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com