C# BindingSource作为BindingSource与BindingSource作为ViewModel
我已经注意到在winforms中实现数据绑定的这两种方法。但是,我想知道哪种方法更可取(就总体性能而言,例如设计时间、效率?据我所知,这两种方法是: BindingSource作为BindingSource:C# BindingSource作为BindingSource与BindingSource作为ViewModel,c#,winforms,inotifypropertychanged,bindingsource,C#,Winforms,Inotifypropertychanged,Bindingsource,我已经注意到在winforms中实现数据绑定的这两种方法。但是,我想知道哪种方法更可取(就总体性能而言,例如设计时间、效率?据我所知,这两种方法是: BindingSource作为BindingSource: this.textBox1.DataBindings.Add(新绑定(“Text”,this.myBindingSource,“Augend”,true)); 通过使用表单的属性窗口,可以在设计期间轻松实现,并让表单自动生成代码 使用INotifyPropertyChanged更新控件,
this.textBox1.DataBindings.Add(新绑定(“Text”,this.myBindingSource,“Augend”,true));
- 通过使用表单的属性窗口,可以在设计期间轻松实现,并让表单自动生成代码
- 使用
更新控件,只需调用INotifyPropertyChanged
而不使用严格的OnPropertyChanged
值(这似乎让我失望)PropertyName
this.textBox1.DataBindings.Add(新绑定(“Text”,this.myViewModel,“Augend”,true));
- 在没有自动生成和ViewModel的
匹配的情况下,似乎需要进行更多的设置工作ProeprtyName
- 使用
更新控件,但是INotifyPropertyChanged
应该与对象的PropertyName
属性相同(这在某种程度上给人一种肯定的感觉,而不是以前的那种)
- 性能上的差异(如果有的话)可以忽略不计。在数据绑定中涉及到很多反射,以便统计一些额外的委托调用(现在一般没有人这样做)
- 设计时支持如何,取决于需求,不能用作“整体性能”因素。例如,许多业务应用程序更喜欢使用规则和属性(如数据注释)按代码自动生成运行时UI,因此根本不需要设计时支持。从另一方面来说,如果确实需要设计时支持,那么除了使用
或类似的中介之外,别无选择。BindingSource
本身不过是一个数据源适配器,它绑定到类型(或小型数据模型)在设计时,并在运行时转换为真实的实例BindingSource
BindingSource
是数据绑定的源,您的问题可能是“首选哪一种:使用或不使用BindingSource将数据绑定到视图模型?”既然您提到了它,我的this.myBindingSource
从技术上讲是通过属性窗口绑定到ViewModel的。我想我最初的想法来自我展示的代码片段,其中的源代码是ViewModel或BindingSource
。