Я работаю над приложением, которое отображает DataGridView таблицы, которая выглядит следующим образом:
FieldID | Value
---------------
1 | Jane
2 | Doe
У меня также есть Dictionary<int, String>
, который позволяет мне выполнять поиск из FieldID в строкуверсия имени поля (имя, фамилия и т. д.)
Следуя приведенным здесь советам, Как создать поля LookUp в DataGridView? , я пытаюсь установить ячейки встолбец FieldID для их поиска dictionary[fieldID]
.Однако, когда я устанавливаю cell.Value
, я получаю следующую ошибку (ошибка во время выполнения, всплывающее окно в моем приложении WinForms, а не в Visual Studio):
The following exception occurred in the DataGridView:
System.Exception: First Name is not a valid value for Int32. ----->
System.FormatException: Input string was not in a correct format
at System.number.StringToNumber...
и т. Д.
Кодустановить ячейку следующим образом:
String value = dictionary[cell.Value]; //value = "First Name"
cell.Value = value; //Error occurs on this line
Моя проблема в том, что я не знаю, почему / где DataGridView конвертируется в Int32 - я никогда не заявлял, что столбец, содержащий FieldID, был строго int,Если он интерпретировал это таким образом, я попытался выполнить следующее до присвоения значения String ячейке:
dataGridView.Columns[0].CellTemplate.ValueType = typeof(String);
и
cell.ValueType = typeof(String);
Однако, похоже, ничего не изменилось.Как я могу остановить неявное преобразование в int?