我有一个由数组组成的数据库,我使用ListView来显示用户希望使用此代码看到的数据,以及其他相关性较低的代码:
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
变量“value”是用户想要搜索的内容,此代码显示ListView控件中的搜索结果,因此当用户选择其他值时,项目将被清除并在ListView控件中显示另一组项目< / p>
我的问题是如何回到之前的结果并转到下一个结果,我的意思是如何保存ListView中的最后结果并在按下按钮时显示它们
答案 0 :(得分:0)
最简单的方法是保存两个单独的SubItem列表,一个用于下一个SubItem。按下按钮后,您将清除列表视图的项目源并使用适当的项目(下一个/上一个)进行设置
理论上,理论上可以为每次从数据库返回的每个条目创建一个大列表缓存,以最大限度地减少数据库调用,但会占用大量内存。所以你必须决定哪一个更适合你
答案 1 :(得分: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>>