【问题标题】:VB.NET Custom Object Master-Detail Data BindingVB.NET 自定义对象主从数据绑定
【发布时间】:2010-03-08 13:23:18
【问题描述】:

自从几年前开始使用VB.NET 以来,我已经慢慢熟悉使用.NET 的数据绑定功能,但是我经常发现自己对它的行为感到困惑,而不是发现它应该工作的正确方式一些肮脏的工作以满足我的需要并继续。

不用说我的问题还在继续出现。

我使用自定义对象作为控件的数据源,通常是整个表单。我发现分离业务逻辑和图形界面令人沮丧。 (这可能完全是一个新问题。)因此,对于很多对象,我生成了一个表单,其中包含对象的DataBindingSource。当我使用 New Constructor 创建每个对象时,我明确地将它应该绑定到的对象传递给它,然后将此传递的对象设置为 BindingSourceDataSource。 (这是一口!)

现在 Master 对象(例如,绑定到每个表单)通常包含一个我喜欢在 DataGridView 中显示的对象列表。我(有时)以自己的形式创建和修改这些子对象(再次以与主表单相同的方式创建数据绑定)但是当我将它们添加到主对象中的列表时,DataGridView 不会用新的项目。

所以我的问题确实有几层:

  1. 当我将 Detail 对象列表添加到 Master 对象列表时,如何轻松/有效/正确地更新此 DataGridView

  2. 这种方法对DataBinding 好/可行吗?

  3. 将业务逻辑与图形界面分离的最佳方式是什么。

【问题讨论】:

    标签: vb.net winforms data-binding


    【解决方案1】:

    1) 使用 BindingList。它为您处理所有网格视图的刷新。我已经用过很多次了,我喜欢它。这非常简单,可以做你想做的事。 http://msdn.microsoft.com/en-us/library/ms132679.aspx

    2) 是的

    3) 带有 ViewModel 或 PresentationModel 的 Model-View-Presenter 模式。网上有很多关于 Model-View-Presenter 的重要信息。阅读并学习它。顺便说一句:您会看到很多与使用 asp.net webforms 进行 Web 开发相关的 MVP 信息……它在 WinForms 开发中同样有效。多年来我一直在 winforms 中使用 MVP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多