C# 插入行?我试过了,但还是空着

C# 插入行?我试过了,但还是空着,c#,listview,subitem,C#,Listview,Subitem,我有一个ListView(名为ListView1)。 我添加了4列(带有可视化编辑器、属性列):NumeroLista、OrdEnstracta、NumElementos、TiempoorDemaniento 我确信代码已经到达,因为它在直接从类构造函数调用函数之前。 我试图用以下代码填充它,但它保持为空(请注意:我使用的数组在代码的另一部分中被序列化): intidx; 串tmp; 字符串[][]linea=新字符串[numListas][]; 对于(idx=0;idx

我有一个ListView(名为ListView1)。 我添加了4列(带有可视化编辑器、属性列):NumeroLista、OrdEnstracta、NumElementos、TiempoorDemaniento

我确信代码已经到达,因为它在直接从类构造函数调用函数之前。 我试图用以下代码填充它,但它保持为空(请注意:我使用的数组在代码的另一部分中被序列化):

intidx;
串tmp;
字符串[][]linea=新字符串[numListas][];
对于(idx=0;idx
您可能忘了将
列表视图的
设置为
详细信息


希望这有帮助。

是否已将Listview的
视图属性设置为
详细信息
?此外,插入项目后不需要刷新listview。谢谢。它起作用了。但是它显示第二列、第三列和第四列(第二列上的第一个属性,第三列上的第二个属性,…)。如何修复它?第一列显示ListViewItem本身的文本。因此,将
linea[idx][0]
传递给ListViewItem构造函数,而不是为其使用子项。您的意思是传递一个字符串(linea[idx][0])+一个数组(左元素的数组),总共传递两个元素吗?
int idx;
string tmp;
string[][] linea = new string[numListas][];
for (idx = 0; idx < numListas; idx++)
{
    linea[idx] = new string[3];
    linea[idx][0] = Convert.ToString(idx);
    switch(OrdenListas[idx]){
        case 0: linea[idx][1] = "Crescente"; break;
        case 1: linea[idx][1] = "Decrescente"; break;
        case 2: linea[idx][1] = "Aleatorio"; break;
        default: linea[idx][1] = "No especificado"; break;
    }
    linea[idx][2] = Convert.ToString(LongitudListas[idx]);
    ListViewItem lvi = new ListViewItem();
    lvi.SubItems.Add(linea[idx][0]);
    lvi.SubItems.Add(linea[idx][1]);
    lvi.SubItems.Add(linea[idx][2]);
    lvi.SubItems.Add("test");
    listView1.Items.Add(lvi);
    listView1.Refresh();
}