DataGridView Winform Авто Вставка Порядковый столбец (трюк) - PullRequest
1 голос
/ 22 марта 2010

Я хочу уловить эту проблему.

У меня есть такой стол

Продукт (uuid, Имя)

и одно представление данных для отображения этой информации (dataGridView.DataSouce = Продукты, которые назначаются во время выполнения)

  • Моя проблема в том, что я хочу иметь столбец «Нет» в dataGridView, который будет отображаться как показано ниже

    Нет | Имя

    1 | ProdctA

    2 | ProductB

    3 | ProductC

Сейчас я создаю поле «Нет» в моей модели продукта, перебираю всю строку и присваиваю ей значение.

Я думаю, что это не очень хорошее решение.

Надеюсь, кто-нибудь может предложить лучшее решение.

Спасибо

1 Ответ

0 голосов
/ 22 марта 2010

Я никогда не находил трюк, но я исследовал несколько раз. Ниже приведены некоторые комментарии по этой проблеме.

  1. Поскольку вы добавляете столбец, вы в основном добавляете данные. Следовательно, вы должны указать, какие данные строки будут для этого столбца.
  2. Обновление определенного столбца происходит относительно быстро. Примерно такая же производительность, как при добавлении столбца данных с выражением. Я провел тестирование производительности и обновил целочисленное значение, в то время как использование индекса столбца примерно так же быстро, как вы можете сделать это обновление.

    Dim oData As DataTable = GatherDataTable()

    Dim oAutoIdColumn As New DataColumn("uuid", GetType(Integer))
    oData.Columns.Add(oAutoIdColumn)

    Dim iColumnIndex As Integer = oAutoIdColumn.Ordinal
    Dim oRows As DataRowCollection = oData.Rows
    Dim iRowCount As Integer = oRows.Count

    For i As Integer = 1 To iRowCount
        oRows.Item(i - 1).Item(iColumnIndex) = i
        '-or-
        oRows(i - 1)(iColumnIndex) = i
    Next

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