2013-06-04 58 views
0

我想編寫一個程序,使用多個選項卡,每個選項卡顯示一個數據網格。所有網格的數據都存儲在一個數據源中。除colums/rows的數量和當然值之外,每個選項卡應該看起來相同。在用戶控制中訪問主程序的數據源

所以我現在試圖把網格視圖放到用戶控件中並創建一個.dll。如果添加了一個標籤,我把用戶控件放到它裏面 - 這已經可以工作了。網格在虛擬模式下工作,如果創建了新的選項卡/網格,它會調用事件以將數據加載到網格中。

現在我有問題,網格和LoadData事件在用戶控件中,而數據源在我的主程序中。所以在用戶控件中,數據源是未定義的。我認爲這樣可以,因爲您不需要單獨運行用戶控件,並且一旦在主程序中使用了數據源應該可用於LoadData事件。但是,在數據源未知的情況下似乎無法生成.dll。

另一方面,我不想將數據源放入用戶控件中,因爲每次創建新選項卡時都會公佈該數據源。

我希望你能給我一個提示什麼是最好的實現方式。

非常感謝你!

回答

0

我不知道您的期望(如何詳細)什麼答案,但我認爲這是一個很好的例子:

  • 重用一個控制
  • 使用MVVM架構模式

我會試着分開執行負責創建ViewModel的邏輯的類。控件(在您的目的網格)將始終綁定到此ViewModel,並且此控件將在不同的視圖中重用。取決於放置的位置,如果有必要,可以添加一些附加功能(裝飾器設計模式)。如果您希望更詳細(不是概念性)的解決方案而不是抱歉。

+0

是的,概念是好的,我沒想到任何代碼左右。只是我想避免數據綁定。這對我來說很複雜,尤其是因爲數據存儲在lua表中,而我正在使用LuaInterface訪問它。所以數據不會保存在通常的c#數據結構中。 –

+0

我從來沒有聽說過LuaInterface,所以我不能幫你,但是祝你好運。 –

相關問題