Зачем выбирать новое значение в выпадающем списке хранилища, но его нельзя получить в gridcontrol? - PullRequest
1 голос
/ 11 июля 2011

Привет, у меня есть gridcontrol, который включает три столбца: column1, column2 и column 3. Column2 и Column3 являются репозиторием comboBox1 и репозиторием comboBox2: repcomboBox 1 имеет источник данных со списком строковых типов, а repcomboBox2 имеет источник данных типа int список.

У моего элемента управления сеткой также есть источник данных.

Я надеюсь реализовать следующую функцию: если в repcomboBox1 выбрана строка A, значением по умолчанию в repcomboBox2 будет intA.

Я пробую следующий код:

    private void repoCombo1_EditValueChanged(object sender, EventArgs e)
    {
        GridView view = gridControl1.FocusedView as GridView;
        string format = gridView1.GetFocusedRowCellValue("field2Name").ToString();
        if (format.Equals(stringA))
        {
            gridView1.SetRowCellValue(gridView1.FocusedRowHandle, view.Columns.ColumnByFieldName("field3Name"), intA);
        }
    }

Например, если в rowX текущее значение в repcomboBox1 равно stringB, я выбрал stringA вместо stringB, отлаживаю код и нахожу «string format = gridView1.GetFocusedRowCellValue (« field2Name »). ToString ();» установить формат как "stringB", отличный от "stringA", который я ожидаю. Как я могу получить новое выбранное значение в хранилище comboBox? Почему это не меняется? Большое спасибо!

1 Ответ

1 голос
/ 11 июля 2011

Вы должны использовать следующий код для этой цели:

object value = (sender as BaseEdit).EditValue;
if(value != null)
  string format = value.ToString();        
  if (format.Equals(stringA))        {            
    gridView1.SetRowCellValue(gridView1.FocusedRowHandle, view.Columns.ColumnByFieldName("field3Name"), intA);        
...