Добавление другого списка <string>в DataGridViewComboBoxCell в DataGridView - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблемы с реализацией DataGridViewComboBoxCell внутри элемента управления DataGridView. То, что я хочу сделать, это отобразить в каждой строке различные наборы вариантов, поэтому каждый ComboBox имеет свой список для отображения. Я использую конструктор Visual Studio.

Я назначил myDataGridView.DataSource BindingSource (имя переменной - bindingSourceComponenetFileInfo), которому DataSource (bindingSourceComponentFileInfo.DataSource) я назначил свои данные с именем EclipseComponentFileInfo, который определяется следующим образом: 1003 *

namespace EclipseSuiteMakerWindowsForms
{
    class EclipseComponentFileInfo
    {
        public EclipseComponentFileInfo()
        { }
        private string path;
        private string pathName;
        private string[] fileName;
        public string[] FileName { get => fileName; set => fileName = value; }
        public string Path { get => path; set => path = value; }
    }
}

Проблема, с которой я сталкиваюсь, это поле «имя файла» - поскольку это не простая строка, а массив строк, она не отображается в Visual Designer в разделе DataGridView / Columns / SelectedColumns (только столбец PathName доступен). Я использовал Visual Designer для создания для моего DataGridView «несвязанного столбца» (который я до сих пор не совсем понимаю, что это такое и как он работает - без документов) с указанием «Имя: Имя файла / Текст заголовка: FileNameHeader / Тип: DataGridViewBoxColumn» и затем, когда я запускаю свое приложение, мой столбец ComboBox в каждой строке представлялся пустой строкой - я как бы ожидал этого.

Итак, в следующий раз я назначил (используя Visual Designer) DataSource несвязанного столбца, созданного выше (DataGridViewBoxColumn.DataSource), переменную (типа BindingSource) с именем fileNameBindingSource. Затем я назначил fileNameBindingSource. DataSource, ранее упомянутый bindingSourceComponenetFileInfo (типа EclipseComponentFileInfo) с DataPropertyName с именем FileName.

Затем столбцы ComboBox всех строк заполняются именем, которое по какой-то причине появляется в первой строке.

Мой вопрос:

Могу ли я заполнить строки столбцов ComboBox с различным набором элементов или каждый ComboBox должен иметь одинаковый набор элементов (например, в первой строке есть ComboBox с массивом из одного элемента «Item1», но во второй строке есть ComboBox с массивом из двух элементов «Item1 / Item2») .

1 Ответ

0 голосов
/ 20 апреля 2020

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

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