Создайте опции выпадающего списка из перечисления в DataGridView

Посмотрите документацию :

sum (iterable [, start])

Начальные суммы и элементы итерации слева вправо и возвращает общее количество. start по умолчанию - 0. Элементы iterable обычно являются числами, а начальное значение не может быть строкой.

blockquote>

Таким образом, вы должны передать итерируемый как аргумент, а не int!

sum((a, b)) должен работать правильно.

Это функция, которая предназначена для использования, когда у вас много значений, хранящихся в списке (например), если вы хотите суммировать два значения, вы должен просто использовать a + b.

18
задан Matt Hamilton 25 September 2008 в 11:17
поделиться

2 ответа

Я не знаю, работало ли это со столбцом DataGridView, но он работает с ComboBoxes:

comboBox1.DataSource = Enum.GetValues(typeof(MyEnum));

и:

MyEnum value = (MyEnum)comboBox1.SelectedValue;

ОБНОВЛЕНИЕ: Это работает со столбцами DataGridView также, просто не забудьте устанавливать тип значения.

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "My Enum Column";
col.DataSource = Enum.GetValues(typeof(MyEnum));
col.ValueType = typeof(MyEnum);
dataGridView1.Columns.Add(col);
37
ответ дан 30 November 2019 в 07:09
поделиться

Или, если необходимо сделать некоторую фильтрацию значений перечислителя, можно циклично выполниться до Enum.GetValues(typeof(EnumeratorName)) и добавить тех, Вы хотите использовать:

dataGridViewComboBoxColumn.Items.Add(EnumeratorValue)

Как в стороне, вместо того, чтобы использовать DataTable, можно установить DataSource DataGridView к объекту BindingSource с DataSource набора объекта BindingSource к BindingList<Your Class>, который Вы заполняете путем передачи IList в конструктора.

На самом деле, мне было бы интересно знать от любого, если это предпочтительно для использования DataTable в ситуациях, где у Вас уже нет одного (т.е. это возвращается из вызова базы данных).

3
ответ дан 30 November 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: