列表视图项记录窗口窗体

本文关键字:窗口 窗体 记录 视图 列表 | 更新日期: 2023-09-27 18:25:25

我有一个由数组组成的数据库,我使用 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 控件中显示另一组项

我的问题是我如何返回之前的结果并转到下一个结果,我的意思是如何保存ListView中的最后结果并在按下按钮时显示它们

列表视图项记录窗口窗体

要存储搜索值,您需要创建并维护

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>>

最简单的方法是保存两个单独的子项列表,一个用于前一个用于下一个。按下按钮时,您将清除列表视图的项目源并使用适当的项目源(下一个/上一个(

理论上,每次都可以为从数据库返回的每个条目创建一个大列表缓存,以最大程度地减少数据库调用,但会消耗大量内存。所以你将不得不决定哪一个更适合你