我应该在Windows窗体项目中使用数据绑定吗?

Sim*_*mon 8 c# data-binding winforms

我正在使用Winforms开发一个应用程序,并且使用了一个数据绑定我的网格的路径BindingSource.我的问题是:

这是最好的方法吗?我应该手动填充单元格而不是让它BindingSource为我做吗?它会导致进一步的问题吗?如果在任何情况下数据绑定会产生问题,那将是有用的.

我的一位同事发誓黑色和蓝色不使用数据绑定.我真的不相信他说的话,所以任何利弊都是有价值的.

在连接到单个数据库和可编辑DataGrid的多用户应用程序的情况下,如何解决更新数据的并发问题?

Mar*_*ell 14

坦率地说,愚蠢地咒骂黑色和蓝色的任何东西,而不给出理由.

在某些情况下,数据绑定很棒,并且有些情况比它更值得.如果仅从频谱的"痛苦"结束报告,您的同事对您没有任何好处.

对于简单的数据显示,太棒了!它会为您节省大量时间和错误.对于数据的直接更新(包括属性逻辑和IDataErrorInfo支持),再次,非常好!事实上它是WPF等的核心部分.

有些情况下它没那么有用:

  • 海量数据("虚拟"模式有助于或更好:不显示1000万行;对任何人都没有帮助)
  • 如果你不希望更新是直接的,而是:延迟 - 虽然绑定到视图模型(而不是你的域模型)是一个很好的反驳
  • 当你有很多不同的线程试图绑定到相同的数据时(同样,独立的视图模型帮助)

我会问你的同事"为什么"; 如果他们不能给出一个充分的理由,我会倾向于忽视它们.如果没有合理的讨论,那就是FUD.


Sha*_*ain 5

我个人发现使用更容易编程的数据绑定过程,您不必进行迭代,总体上减少了LOC.

.NET窗体中的数据绑定概念:

DataBinding的优点

  1. .NET中的数据绑定可用于快速编写数据驱动的应用程序..NET数据绑定允许您通过快速执行来编写更少的代码,但仍然可以以最佳方式完成工作.

  2. .NET会在后台自动为您编写大量数据绑定代码(您可以在"Windows生成代码"部分中看到它),因此开发人员不必花时间编写基本数据绑定代码,但仍具有修改的灵活性他想要的任何代码.我们获得了绑定和非绑定方法的好处.

  3. 使用事件控制数据绑定过程.这将在本文后面更详细地讨论.

DataBinding的缺点

  1. 可以使用未绑定或传统方法编写更优化的代码.

  2. 只有使用未绑定方法才能实现完全的灵活性.

更进一步说明,您应该在.NET窗体中看到数据绑定概念