2010-03-08 42 views
0

自從幾年前開始使用VB.NET以來,我已經慢慢熟悉.NET的數據綁定功能,但是我經常發現我的自我被它的行爲困惑,而不是發現它應該正確的工作方式我發現一些骯髒的工作,以滿足我的需求,並繼續。VB.NET自定義對象主從數據綁定

不用說我的問題不斷出現。

我使用自定義對象作爲控件的數據源,通常是整個窗體。我發現分離業務邏輯和圖形界面令人沮喪。 (這可能完全是一個新問題。)因此,對於很多對象,我生成一個表格,其中包含對象的DataBindingSource。當我使用New Constructor創建每個對象時,我顯式傳遞它應該綁定到的對象,然後將此傳遞對象設置爲BindingSourceDataSource。 (這是一口!)

現在,主對象(比如綁定到每個表單)通常包含一個我喜歡在DataGridView中顯示的對象列表。我(有時)以它們自己的形式創建和修改這些子對象(同樣以主表單的方式創建一個數據綁定),但是當我將它們添加到主對象的列表中時,DataGridView將不會使用新項目進行更新。

所以我的問題真的有幾層:

  1. 怎麼能當我將它們添加到主對象的名單我很容易/有效/正確地更新這個DataGridView與詳細的對象列表。

  2. 是這種方法DataBinding好/可行的。

  3. 從圖形界面分離業務邏輯的最佳方式是什麼?

回答

2

1)use BindingList < T>。它爲你處理gridview的所有刷新。我用過很多次了,我喜歡它。這是超級簡單,做你想做的。 http://msdn.microsoft.com/en-us/library/ms132679.aspx

2)是

3)與一個ViewModel或PresentationModel模型 - 視圖 - 演示模式。在網上有很多關於Model-View-Presenter的很好的信息。閱讀並學習。順便說一下:你會看到很多與asp.net webforms的web開發相關的MVP信息......它在WinForms開發中也同樣適用。多年來我一直在使用winform的MVP。