Как мне создать DataGrid в C #? - PullRequest
0 голосов
/ 09 апреля 2009

Я хочу добавить DataGrid в форму. Когда программа выполняется, пользователь вводит значения, и я использую эти значения в задаче. Мне нужна аналогичная реализация для таблицы с двумя столбцами, и когда пользователь вводит значения, для которых я их использую, для расчета в программе.

Нет необходимости сохранять эти значения в базе данных, они просто будут использоваться в программе.

Как мне это сделать в C #?

Ответы [ 4 ]

2 голосов
/ 09 апреля 2009

В среде winforms вы можете связать строго типизированные коллекции в качестве источника данных; Каждое свойство объектов в коллекции создает столбец (строго говоря, я считаю, что он работает со свойствами для типа, который возвращает коллекция, а не для отдельных элементов в ней)

1 голос
/ 09 апреля 2009

Если вы пишете приложение WinForms, вы можете использовать DataTable для хранения данных и DataGridView для их отображения. Просто создайте таблицу данных:

dataTable = new DataTable();

Создайте нужные вам столбцы программно:

var columnSpec = new DataColumn();
columSpec.DataType = typeof(decimal);  // If it holds a decimal
columSpec.ColumnName = "Interest Rate";
dataTable.Columns.Add(columnSpec);

Добавьте DataGridView в форму, используя конструктор, но не делайте этого, и после создания таблицы свяжите ее с сеткой, используя:

dataGridView.DataSource = dataTable;

Вы можете установить свойства сетки в представлении конструктора.

Я сделал это в случае только для чтения, когда DataTable заполняется из программы и просто отображает ее. Все, что пользователь может сделать, это изменить размер, изменить порядок или установить видимость столбцов. Чтобы добавить новые строки, вам нужно подключиться к событию RowsAdded

0 голосов
/ 09 апреля 2009

Вы можете использовать datagridview и создать таблицу данных, добавить столбцы через ваш код и установить источник данных вашего datagridview как этот datatable и установить AllowUserToAddRows в окне свойств Dataggridview в значение true (значение по умолчанию).

Если вы хотите выполнить расчет после полного обновления ro, то вы можете использовать событие RowPrePaint или, если вы хотите, чтобы вычисление было выполнено после обновления данных в каждой ячейке, вы можете использовать событие CurrentCellChanged представления данных. .

Надеюсь, это поможет ....

0 голосов
/ 09 апреля 2009

Переформулировка Роуленда Шоу

Вам не нужно иметь базу данных для привязки к сетке данных. Если у вас есть данные, заполненные строго типизированной или универсальной коллекцией, вы можете привязать сетку данных к коллекции. Сетка данных заполнит данные из коллекции.

В качестве столбцов будут приниматься имена свойств, и строки будут отображаться в соответствии со строками в коллекции.

Если вы хотите, чтобы пользовательский ввод, то я думаю, что вы должны рассмотреть возможность использования лучшего контроля сетки. Сетка данных не подходит для этой цели. Я не помню, был ли flexgrid (ocx) переделан для .Net.

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