Чтение файла с разделителями-запятыми и помещение данных в ListView - C # - PullRequest
1 голос
/ 02 октября 2008

Хорошо, я пытаюсь прочитать файл с разделителями-запятыми и затем поместить его в ListView (или в любую сетку, на самом деле). Я позаботился о разделительной части задания, когда поля файла помещаются в многомерный массив строк. Проблема заключается в попытке получить его в ListView.

Похоже, что нет реального способа динамического добавления столбцов или элементов, поскольку каждый столбец и элемент должны быть объявлены вручную. Это создает проблему, потому что мне нужно, чтобы ListView был таким же большим, как и файл, размер которого не установлен. Это может быть огромный один раз, а маленький другой.

Любая помощь с этим будет оценена.


В ответ на ответ Джеффри.

Я бы так и сделал, но проблема, с которой я сталкиваюсь, является основной. Как я могу создать эти объекты, не называя их. Вопрос Noobie, но проблема для меня, к сожалению. Это то, что я имею до сих пор.

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

Что я должен сделать для имени listViewItem1?

Ответы [ 5 ]

1 голос
/ 02 октября 2008
1 голос
/ 02 октября 2008

Вы можете загрузить CSV-файл с помощью ado.net и связать его с источником данных сетки данных. Или вы можете использовать linq для xml , чтобы проанализировать файл и связать эти результаты со свойством источника данных таблицы данных.

1 голос
/ 02 октября 2008

Я бы использовал FileHelpers Library для чтения в CSV-файле, а затем привязал коллекцию данных к ListView.

Используйте DelimitedClassBuilder для динамического создания столбцов с typeof (string), равным количеству столбцов в вашем исходном файле.

Загрузите файл CSV в DataTable, используя созданный вами RecordClass, а затем установите для ListView.DataSource значение DataTable.

1 голос
/ 02 октября 2008

Просто переберите каждый из созданных вами массивов и создайте новый объект ListViewItem (я считаю, что есть конструктор, который принимает массив строк). Передайте ListViewItem методу ListView.Items.Add ().

0 голосов
/ 02 октября 2008

Есть ли причина, по которой вы не можете использовать DataTable? Используйте член DataSource из него.

Кроме того, я надеюсь, что вы используете функцию String.Split, а не разбираете ее вручную ...

~ S

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...