Создайте табличную структуру для привязки к DataGridView - PullRequest
0 голосов
/ 13 июля 2020

У меня есть класс, который хранит данные в DataTable, чтобы упростить его привязку к DataGridView. Однако я обнаружил, что DataTable имеет слишком много накладных расходов и потребляет слишком много процессорного времени.

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

Это очень простая c попытка показать, что я пытаюсь сделать:

public class SimpleTable
{
    private Dictionary<string, Type> columns;
    private List<object[]> rowList;

    public SimpleTable()
    {
        columns = new Dictionary<string, Type>();
        rowList = new List<object[]>();
        columns.Add("Column1", typeof(string));
        columns.Add("Column2", typeof(double));
        columns.Add("Column3", typeof(double));
    }

    public void AddRow(params object[] values)
    {
        // do some checks
        rowList.Add(values);
    }

    public object Item
    {
        get
        {
            return rowList[rowIndex][columnIndex];
        }
        set
        {
            rowList[rowIndex][columnIndex] = value;
        }
    }

    public List<object[]> Rows
    {
        get
        {
            return rowList;
        }
    }
}

В На рисунке ниже (верхняя половина) вы можете увидеть, как отображаются данные, когда я привязываю свойство Rows к DGV. Это не то, что я хочу, а нижняя половина.

введите описание изображения здесь

Как мне создать класс, который будет отображаться в виде «таблицы» в DataGridView?

...