Ale*_*sev 7 c# data-binding mvvm winforms
首先,我没有生气,因为我MVVM在WinForms中使用 - )我知道MVP(Model View Presenter)模式及其变体.当我开始这个项目时,我将学习WPF并使用它,但我不得不急于开发程序,并且没有时间学习WPF,所以我必须在WinForms中编写它,我很清楚.
所以简而言之,我有一个面向数据的大型智能客户端应用程序,接近完成,我已完成所有模型和ViewModel(基础设施,域,演示完成)UI也已完成,现在我只需要将UI连接到ViewModels.
首先,我开始使用标准winforms方式(BindingSources和简单的数据绑定)连接它,但是当我做了30-50%的绑定时,我发现我的程序运行速度很慢,到目前为止,我总共有100-150个绑定属性,30它们是域根实体(聚合根)绑定到其EditForm.因此数据绑定在这种情况下不能很好地工作,许多不必要的更新,当小的变化,不清楚的行为和其他丑陋的东西时,整个视图的级联更新.它闻起来像非常不可靠的代码,我几乎无法控制.
所以我开始重写布线作为纯粹干净的WinForms代码(订阅PropertyChange和ListChanged事件,并从UI自己设置ViewModels属性).很多代码要写,但它的工作速度要快得多,我对此完全控制,感觉更可靠.
那么你对这些家伙的想法是什么?谁有过这样的经历?您对"To DataBind与否"的判断是什么?
在 WinForms 中使用数据绑定确实很痛苦,并且订阅 INotifyPropertyChanged 事件并手动执行操作太过分了。我真的很喜欢 MVVM,甚至在 WinForms 上也是如此,因为它具有出色的可测试性和可维护性,但代价却不是要编写 3 倍多的代码。因此,对于新代码,我现在使用组合的 View+ViewModel。
| 归档时间: |
|
| 查看次数: |
6163 次 |
| 最近记录: |