Массив как DataSource DataGrid: как настроить столбцы? - PullRequest
7 голосов
/ 12 июня 2010

В моем приложении Windows Mobile .NET у меня есть простой массив объектов с данными, которые я хочу отобразить в моей DataGrid. Для этого я просто звоню:

myDataGrid.DataSource = myArray;

Это работает, но у меня есть проблема с ним: он использует все свойства в качестве столбцов и использует имена свойств в качестве заголовков столбцов. Я не могу понять, как настроить две вещи:

  • Выберите, какое подмножество свойств должно отображаться в виде столбцов (скажем, у меня есть свойство ID, Имя и значение, я только хочу показать Имя и значение);

  • Переименуйте заголовки столбцов, чтобы сделать их более понятными (например, если свойство называется ID, отобразите заголовок столбца с надписью "Number").

Возможно ли это вообще?

Как уже упоминалось, это приложение для Windows Mobile .NET (версия 2).

Ответы [ 3 ]

1 голос
/ 12 июня 2010

Вам нужно установить свойство Datagrid.TableStyles, чтобы настроить макет.

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid.tablestyles.aspx

Подробнее о привязке к массиву объектов здесь: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridtablestyle.mappingname(VS.71).aspx

Чтобы связать System.Windows.Forms.DataGrid для строго типизированный массив объектов, Объект должен содержать публичные свойства. Чтобы создать DataGridTableStyle, который отображает такой массив, установите Свойство MappingName для classname [] где имя класса заменяется на имя класса Также обратите внимание, что Свойство MappingName является чувствителен к регистру.

0 голосов
/ 25 апреля 2013

В этом коде _im является объектом таблицы, и я связываю этот объект с DataGridView dgvItem, после привязки я изменяю текст заголовка dgvItem по мере необходимости.

    dgvItem.Rows.Clear();
    dgvItem.DataSource = _im ;
    dgvItem.Columns[2].HeaderText = "Mobile Code";
    dgvItem.Columns[3].HeaderText = "Mobile Name";
0 голосов
/ 12 июня 2010

Не знаю, знаете ли вы заранее названия колонок?Но если это так, вы можете зайти в «Редактировать столбцы» вашего DataGridView и просто создать свои столбцы там.В категории «Данные» измените «DataPropertyName» с «(нет)» на имя свойства класса.Оттуда вы можете настроить имя, если оно видно, размер и т. Д. DataGrid свяжет его с вашим источником данных.

Кроме того, есть свойство «DataGridView.AutoGenerateColumns», которое можно установить в значение false, чтобыВам не нужно связывать все свойства вашего объекта.Я тоже подумал, что это может помочь.

...