Случайно получаю исключение. У меня есть сканер штрих-кода, который вводит штрих-коды в таблицу. Код написан на C #. Сначала я смог получить исключение дважды; однако, я больше не могу генерировать его. Исключением является System.InvalidCastException: невозможно преобразовать объект типа «System.Data.DataViewManagerListItemTypeDescriptor» в тип «System.Data.DataRowView». Сначала я сгенерировал его, отсканировав 2 разных бутылки с водой, по 2-3 раза в каждой. Затем, когда я нажал кнопку «Сохранить», я получил исключение. Я попробовал Google для исследования, если кто-то еще получил эту ошибку прежде, но не мог найти кого-либо с подобной проблемой в том же контексте. Исключение выдается в следующем сегменте кода:
foreach (object o in this.theBindingSource.List)
{
System.Data.DataRowView dataRowView1 = (System.Data.DataRowView)o;
}
Очевидно, иногда o имеет тип System.Data.DataViewManagerListItemTypeDescriptor, а не тип System.Data.DataRowView. Есть идеи, почему выбрасывается это исключение?
BindingSource заполняется базой данных:
XYZDataAccess.TypedDataSets.ABCTag tags
= XYZDataAccess.DAL.ABCTagDAL.GetABCTags(
DeliverySession.DeliverySessionId);
if (tags != null && tags.Tables[0] != null)
{
theBindingSource.Sort = "";
theBindingSource.DataSource = tags;
}
Причина, по которой мне пришлось пройтись по источнику привязки, заключается в том, что другой DataGridView должен быть заполнен содержимым источника bindindg; Более того, DataGridView реализовал пользовательскую сортировку данных в элементе управления или представлении. В дополнение к удалению прямого доступа к списку, я должен указать свойство DisplayMember?