Pergunta

Tudo bem, eu estou tentando ler um arquivo delimitado por vírgula e, em seguida, colocar isso em um ListView (ou qualquer grade, realmente). Eu tenho a parte de delimitação do trabalho de cuidado, com os campos do arquivo que está sendo colocado em uma matriz de cadeia multidimensional. O problema é tentar obtê-lo para o ListView.

Parece que não há uma maneira real de adicionar colunas ou itens de forma dinâmica, uma vez que cada coluna e item precisa ser declarado manualmente. Isto coloca um problema, porque eu preciso do ListView para ser tão grande como o arquivo é, quem é o tamanho não está definido. Poderia ser enorme tempo um, e pequeno outro.

Qualquer ajuda com isso seria apreciada.


Em resposta a resposta de Jeffrey.

Eu faria exatamente isso, mas o problema que eu estou correndo em é um básico. Como posso criar esses objetos sem nomeá-los. pergunta Noobie, mas um problema para mim, infelizmente. Isto é o que eu tenho até agora.

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

O que devo fazer para o nome do listViewItem1?

Foi útil?

Solução

Apenas loop através de cada uma das matrizes em que você criou e criar um novo objeto ListViewItem (há um construtor que recebe um array de strings, creio). O passar o ListViewItem com o método ListView.Items.Add ().

Outras dicas

Você pode carregar um arquivo CSV com ado.net e vinculá-lo a uma fonte de dados datagrids. Ou você pode usar linq para xml para analisar o arquivo e se ligam esses resultados à propriedade fonte de dados de um datagrid.

Gostaria de usar a FileHelpers Biblioteca para ler o arquivo CSV e, em seguida, DataBind a coleção para o ListView .

Use o DelimitedClassBuilder para criar dinamicamente colunas com o typeof (string) igual ao número de colunas no seu arquivo de origem.

Coloque o arquivo CSV em um DataTable usando o RecordClass que você criou e, em seguida, definir o ListView.DataSource à tabela de dados.

Existe uma razão que você não pode usar um DataTable? Use o membro DataSource fora dela.

Além disso, eu espero que você esteja usando a função String.Split, e não manualmente análise ...

~ S

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top