У меня проблема с обновлением пользовательского интерфейса DataGridView с помощью DataGridViewComboBoxColumn.
Когда я устанавливаю значение DataGridViewComboBoxColumnCell, оно работает, но пользовательский интерфейс не обновляется.
Я пытался использовать Invalidate (), Refresh () для элемента управления. Дайте ему фокус, а затем переключите фокус на другой элемент управления. Это работает, когда я использую тот же цикл в событии кнопки.
Пока мой код:
BindingList<String> list = new BindingList<String>();
list.Add("Value1");
list.Add("Value2");
DataTable table = new DataTable();
DataColumn col = table.Columns.Add();
col.ColumnName = "Key";
col.DataType = typeof(String);
dataGridView1.DataSource = table;
table.Rows.Add("Key1");
table.Rows.Add("Key2");
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = list;
combo.Name = "Value";
dataGridView1.Columns.Add(combo);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells["Value"].Value = "Value1";
}
У меня было похожее поведение с двумя ZedGraphControls. Я реализовал зависимое масштабирование, и масштаб изменился на графике только при первом масштабировании вручную в обоих элементах управления. То же самое происходит в моем DataGridView, когда я, например, вручную изменяю ширину столбца и снова вызывается метод, обновляется пользовательский интерфейс.