2011-02-16 26 views
0

我正在使用C#(Visual Studio 2010,框架4.0)中的桌面應用程序。我必須在不同的地方顯示相同的(或稍加修改 - 沒有列)datagridview/table。我會從查詢不同的(本地)文件中獲取數據。我發現爲每個表格創建一個新的查詢非常耗時。因此我想到了使用查詢綁定表。但我不知道這是否是最好的辦法。我不知道如何將數據綁定到gridview「昂貴」。也許最好以某種方式顯示同一張桌子,也許把它放在面板中然後正確顯示(根據用戶的導航將它移動到不同的位置/用戶控件)。在不同的地方顯示相同的datagridview(c#)?

這些表格並不那麼大,但我需要在相當一些位置顯示4-5個表格,我不想浪費他們的記憶,因爲還有一些非常大的表格。

任何想法?

謝謝你的時間和答案。

回答

1

正如肯已經表明你應該把幾個DataGridViews到你的形式。但你把它們全部附加到相同的BindingSource。對於BindingSource.DataSource,您只需附加一個包含所有數據的列表(集合,不管),然後再抓取一次。

所有數據網格的設置和配置都可以在設計時使用Visual Studio設計器完成。要做到這一點,你應該看看this answer。它解釋瞭如何創建並將綁定源附加到TextBox,但對於數據網格是相同的。在設計器中進行綁定之後,您可以隨後使用設計器深入網格的Columns屬性,並根據需要更改每列的可見性等。

1

讓每個datagridview爲數據綁定的單個表可能是最好的方法。這允許您一次加載數據(這很好),然後讓每個單獨的datagridview以一種方式「解釋」數據。當然,保存在很多文件I/O上!

0

您可以將網格對象緩存在內存中(避免在處理容器時處置)並在其他表單上顯示。更好的方法是緩存數據而不是UI控件。並以不同形式使用網格上的數據。

0

如果您想盡量減少所需的內存,並且只想執行一次查詢,那麼可以將這些查詢的結果保存到(例如)數據表中。然後創建一個datagridview並在每次需要時將它綁定到這些表上。

如果你想真的保持它很小,你可以定義你自己的自定義數據類這link解釋你需要使用哪些接口的自定義類。

相關問題