Проблема обновления пользовательского интерфейса DataGridViewComboBoxColumn - PullRequest
1 голос
/ 02 сентября 2011

У меня проблема с обновлением пользовательского интерфейса 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, когда я, например, вручную изменяю ширину столбца и снова вызывается метод, обновляется пользовательский интерфейс.

...