Динамический ComboBox в DataGridView - PullRequest
1 голос
/ 04 октября 2011

У меня есть DataGridView с 4 столбцами, один из которых является раскрывающимся (ComboBox) столбцом.Значения в этом столбце должны различаться, поэтому после того, как в строке выбраны заданные раскрывающиеся значения, я бы хотел, чтобы они не были доступны ни в одном из раскрывающихся списков в других строках.Если данное значение не выбрано, оно должно снова появиться в раскрывающихся списках.Я нашел несколько статей с похожими примерами ( 1 , 2 , 3 );однако, все они, похоже, включают подписку на событие и ручное заполнение ComboBox.

  • Есть ли способ сделать это с помощью только привязки данных (может быть, к IEnumerable, который в основном all.Except(selected) запрос Linq)?
  • Если одной привязки данных недостаточно, есть ли лучший способ сделать это, чем примеры, которые я нашел?

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

1 Ответ

1 голос
/ 05 октября 2011

Боюсь, что ваш поиск пока верен - нет лучшего способа предоставить разные списки для комбинированных списков в одном столбце DataGridView, чем подписка на события (обычно CellBeginEdit и CellEndEdit, а затем установка источника данных дляотдельные DataGridViewComboBoxCell).

В подтверждение этого я укажу на превосходный FAQ по DataGridView , который был написан Марком Ридоутом, руководителем программы DataGridView в Microsoft.В FAQ есть полное решение вашей проблемы, которое очень похоже на ссылки, которые вы публикуете.

...