Domanda

Va ??bene, sto cercando di leggere un file delimitato da virgole e poi inserirlo in un ListView (o in qualsiasi griglia, davvero). Mi occupo della parte delimitante del lavoro, con i campi del file che vengono inseriti in una matrice di stringhe multidimensionale. Il problema sta provando a inserirlo in ListView.

Sembra che non ci sia un modo reale di aggiungere colonne o elementi in modo dinamico, dal momento che ogni colonna e elemento devono essere dichiarati manualmente. Ciò pone un problema, perché ho bisogno che ListView sia grande quanto il file, la cui dimensione non è impostata. Potrebbe essere enorme una volta e piccola un'altra.

Qualsiasi aiuto in tal senso sarebbe apprezzato.


In risposta alla risposta di Jeffrey.

Farei esattamente questo, ma il problema in cui mi imbatto è di base. Come posso creare questi oggetti senza nominarli. Domanda Noobie, ma un problema per me, purtroppo. Questo è quello che ho finora.

int x = 0;
int y = 0;
while (y < linenum)
{
    while (x < width)
    {
        ListViewItem listViewItem1 = new ListViewItem(list[y,x]);
        x++;
    }
    y++;
    x = 0;
}

Cosa devo fare per il nome di listViewItem1?

È stato utile?

Soluzione

Basta passare attraverso ciascuno degli array in cui è stato creato e creare un nuovo oggetto ListViewItem (esiste un costruttore che accetta una matrice di stringhe, credo). Passa ListViewItem al metodo ListView.Items.Add ().

Altri suggerimenti

Puoi caricare un file CSV con ado.net e associarlo a un'origine dati datagrids. Oppure puoi usare linq per xml per analizzare il file e associare tali risultati alla proprietà dell'origine dati di un datagrid.

Vorrei usare la Libreria FileHelpers per leggere nel file CSV e poi DataBind la raccolta a ListView .

Usa DelimitedClassBuilder per creare dinamicamente colonne con il tipo di (stringa) uguale al numero di colonne nel tuo file sorgente.

Carica il tuo file CSV in una DataTable usando RecordClass che hai creato e quindi imposta ListView.DataSource su DataTable.

C'è un motivo per cui non è possibile utilizzare una DataTable? Usa il membro DataSource al di fuori di esso.

Inoltre, spero che tu stia utilizzando la funzione String.Split e non analizzi manualmente ...

~ S

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top