VB.NET自定义对象主 - 细节数据绑定

时间:2010-03-08 13:23:18

标签: vb.net winforms data-binding

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

毋庸置疑,我的问题仍然存在。

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

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

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

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

  2. 这种方法是DataGridView好/可行。

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

1 个答案:

答案 0 :(得分:2)

1)使用BindingList< T>。它为您处理gridview的所有刷新。我已经使用了很多次,我喜欢它。它非常简单,可以满足您的需求。 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开发中同样有效。多年来我一直在winform中使用MVP。