2014-10-02 43 views
0

我有一個包含一個數組的數據庫,我用一個ListView來顯示數據的用戶希望看到使用此代碼之外的其它代碼片段是不太相關的:ListView項紀錄WindowsForms

lsvResultados.Items.Clear(); 
i = 0; 
do 
{ 
    if (value == database[i,attribute]) 
    { 
     ListViewItem Inmueble = new ListViewItem(numdatabase[i, 5].ToString());   
     Inmueble.SubItems.Add(database[i, 0]); 
     Inmueble.SubItems.Add(database[i, 1]); 
     Inmueble.SubItems.Add(database[i, 2]); 
     Inmueble.SubItems.Add(numdatabase[i, 0].ToString()); 
     Inmueble.SubItems.Add(numdatabase[i, 1] + " m²"); 
     Inmueble.SubItems.Add(SacarPorcentaje(numdatabase[i, 1], numdatabase[i, 2]) + " m² (" + numdatabase[i, 2] + "%)"); 
     Inmueble.SubItems.Add("S/. " + numdatabase[i, 3]); 
     Inmueble.SubItems.Add(numdatabase[i, 4].ToString()); 
     Inmueble.SubItems.Add(database[i, 3]); 
     Inmueble.SubItems.Add(database[i, 4]); 
     lsvResultados.Items.Add(Inmueble); 
    } 
    i++; 
} while (i < TotalInmuebles); 
//yes I know I´m using do-while 

變量「值」是用戶想要搜索的內容,此代碼顯示ListView控件中的搜索結果,因此當用戶選擇另一個值時,項目被清除並在ListView控件中顯示另一組項目

我的問題是我該如何回到以前的結果,也去下一個結果,我的意思是如何保存最後的結果在ListView中顯示並在按下按鈕時顯示它們的例子

回答

0

要存儲您將創建搜索值並維持

List<string> searchValues = new List<string>(); 

要存儲一組您將創建結果,並保持

List<ListViewItems> searchResult = new List<ListViewItems>(); 

要存儲更多或全部集合,您將創建結果,並保持

List<List<ListViewItems>> searchResults = new List<List<ListViewItems>>(); 

您也可能希望包含搜索值而不是List<ListViewItems>創建一個 Dictionary<string, List<ListViewItems>>

0

最簡單的方法是保存兩個單獨的子項目列表,一個用於下一個子項目。當按下按鈕時,您將清除列表視圖的項目源並使用適當的一個(下一個/前一個)

理論上,您可以爲每次從數據庫返回的每個條目創建一個大列表高速緩存,以最小化數據庫調用,但會消耗大量內存。所以,你必須決定哪一個更適合你