обновление таблицы данных - PullRequest
0 голосов
/ 24 июля 2011

Я новичок в этом программировании, и это весело!

В данный момент я смотрю на DataGridView и массивы.

В моем массиве есть имена, адреса и все такое ...

и одним нажатием кнопки я установил источник данных для сетки данных для моего массива следующим образом:

    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = logik.kundekartotek.arrKunder;
    }

но когда я добавляю некоторую новую информацию в мой массив, мне нужно обновить таблицу данных ..

но как мне это сделать?

Я нашел решение:

    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = null; 
        dataGridView1.DataSource = logik.kundekartotek.arrKunder;
    }

но это кажется неправильным ..

Ответы [ 3 ]

1 голос
/ 24 июля 2011

Попробуйте:

private void button1_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = logik.kundekartotek.arrKunder;
    dataGridView1.EndEdit();
}

private void button2_Click(object sender, EventArgs e)
{
    dataGridView1.Refresh();
}

Описан EndEdit здесь .

0 голосов
/ 25 июля 2011

Когда вы используете ArrayList в качестве DataSource, то то, что вы делаете, является наилучшим способом обновления отображаемой информации , однако есть типы коллекций, которые гораздо лучше использовать в качестве DataSource которые были разработаны для поддержки двухсторонней привязки данных.

Первое, на что нужно обратить внимание - это общая коллекция BindingList<T>. Это описано полностью здесь на MSDN.

Если ArrayList вместо *1014* добавить новые объекты в список (используя метод .Add ()), они автоматически появятся в DataGridView.

Как только вы начнете использовать это, вам, вероятно, понадобятся дополнительные функции, такие как сортировка сетки по столбцам - просмотрите MSDN, чтобы найти больше примеров того, что возможно.

(еще одна опция DataSource, которая предоставляет расширенные функции - это DataTable, как и BindingList<T>, когда вы добавляете элемент в DataTable, он появляется в DataGridView, но я бы порекомендовал использовать список , таблицы данных либо связывают вас с определенной технологией доступа к данным, либо заставляют перепрыгивать через множество скачков).

0 голосов
/ 24 июля 2011

Одним из вариантов может быть добавление new row к DataGridView самостоятельно. Добавив new item к array, который у вас есть, вы можете сделать

  int i = dataGridView1.Rows.Add();//i is the index of the new row added

    dataGridView1.Rows[i].Cells[0].Value = val1;
    dataGridView1.Rows[i].Cells[1].Value = val2;

Если предположим, что один из ваших столбцов value имеет DateTime, вы можете сделать

dataGridView1.Rows[i].Cells[1].ValueType = typeof(DateTime);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...