Имя столбца Datagridview в Switch - PullRequest
0 голосов
/ 06 мая 2011

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

Вот мой код:

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
  if (_licDataSet.LicenseFileTable.Rows(e.RowIndex).Columns(e.ColumnIndex) == "test")

    switch (dataGridView1.CurrentCell.OwningColumn.Name)
    {
      case "AllowAsRemoteDesktopColumn" :
        // do not think there are any checks for this column
        // we'll find out shortly though!
        break;
      case dataGridView1.CurrentCell.OwningColumn.Name : 
        // ^^^ this errors with "A constant value is expected"
        // do something
        break;
    }
}

Я ошибаюсь в позиции ^^^, как вы можете видеть из сообщения.

Что я делаю не так? Я думаю, что имя колонки-владельца на этом этапе было константой ...?

Помощь!

*** РЕДАКТИРОВАТЬ *** Как мне получить имя столбца текущей ячейки - это мой вопрос, если вышеприведенное не работает? *

Ответы [ 4 ]

0 голосов
/ 20 сентября 2012

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

0 голосов
/ 06 мая 2011

В случаях оператора c # switch могут быть только константные литералы, строки и перечисления.Это не может быть свойство или поле класса.MSDN ссылка: http://msdn.microsoft.com/en-us/library/06tc147t(v=vs.71).aspx

0 голосов
/ 21 мая 2011

В качестве регистра вы используете то же свойство, что и при проверке переключателя.Возможно, вам нужно заменить второй регистр на ключевое слово default.

0 голосов
/ 06 мая 2011

Вам необходимо предоставить константу, представляющую одно из значений, которые может иметь CurrentCell.OwningColumn.Name . Нечто подобное «другому значению», а не свойство объекта.

...