Columnas de vista de lista

Tengo 2 columnas en un ListView. Mi "C:\file.txt" se ve así:

1;aaa 
2;bbb
3;ccc 
4;ddd 

y así. (cada número y texto en línea separada) Mi código:

FileStream spis = File.Open("C:\\file.txt", FileMode.Open, FileAccess.Read);
StreamReader yaRead = new StreamReader(spis);
string yaView = yaRead.ReadToEnd();
yaRead.Close();
spis.Close();
String[] yaArray = yaView.Split(new char[] {';'});
foreach (string ya in yaArray)
{
    listView1.Items.Add(ya);
}

Resulta

1
aaa
bbb
(...)

...en la primera columna y nada en la segunda columna. Por favor ayúdame a arreglarlo.

preguntado el 03 de mayo de 12 a las 22:05

A pesar de agregar una respuesta, me di cuenta de que esto está parcialmente respondido en stackoverflow.com/questions/473148/… -

2 Respuestas

Agrega columnas a una vista de lista a través de la propiedad SubItems de un ListViewItem.

La forma más sencilla es hacer algo como:

ListViewItem newItem = new ListViewItem("1");
newItem.SubItems.Add("aaa");
listView1.Items.Add(newItem);

Si tomamos su ejemplo, simplemente podemos hacer algo como lo siguiente:

string[] yaArray = yaView.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 

Esto le dará una matriz que se parece a:

[1;aaa]
[2;bbb]
[3;ccc]
[4;ddd]

Hemos dividido en función de la nueva línea en lugar del punto y coma.

Entonces es simplemente cuestión de hacer lo siguiente:

foreach(string lineItem in yaArray)
{
  string[] listViewRow = lineItem.Split(new string[] { ";" }, StringSplitOptions.None); //Now we split on the semi colon to give us each item
  ListViewItem newItem = new ListViewItem(listViewRow[0]);
  newItem.SubItems.Add(listViewRow[1];
  listView1.Items.Add(newItem);
}

Eso debería darte lo que quieres.

contestado el 03 de mayo de 12 a las 22:05

Por favor, agregue SUBelementos a la lista

foreach(var line in File.ReadAllLines(@"C:\file.txt"))
{
  listView1.Items.Add(line.Split(';'));
}

contestado el 03 de mayo de 12 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.