Datagridviewcomboboxcolumn не работает
Я использую запрос LINQ join между Пользователем и группами в качестве источника данных DataViewGrid для отображения данных.
Проблема в том, что я хотел бы использовать DataGridViewComboBoxColumn, чтобы пользователь мог изменить группу. Но комбо работает не так, как я себе представлял.
Это мой код:
var query = from u in context.User join ur in context.UserRole on u.ID equals r.UserID join r in context.Role on ur.RoleID.ToString() equals r.ID.ToString() select new {u.ID, u.Nick, u.LastLogin, Role = ur == null ? String.Empty : r.Name }; DataGridViewTextBoxColumn ColID = new DataGridViewTextBoxColumn(); DataGridViewTextBoxColumn ColNick = new DataGridViewTextBoxColumn(); DataGridViewTextBoxColumn ColLast = new DataGridViewTextBoxColumn(); DataGridViewComboBoxColumn ColRole = new DataGridViewComboBoxColumn(); ColID.DataPropertyName = "ID"; ColNick.DataPropertyName = "Nick"; ColLast.DataPropertyName = "LastLogin"; ColRole.DataPropertyName = "Role"; ColRole.DataSource = context.Role.ToList(); ColRole.ValueMember = "ID"; userDataGridView.Columns.Add(ColID); userDataGridView.Columns.Add(ColNick); userDataGridView.Columns.Add(ColLast); userDataGridView.Columns.Add(ColRole); userDataGridView.DataSource = query.ToList();
Я поставил JoinQuery между Пользователем и группой лиц в объекте datagridview dataSource и установить группу в dbset как DataGridViewComboBoxColumn источников данных.
Но я получаю ошибку, которая говорит, что значение ячейки datagridviewcomboboxcolumn недопустимо, и даже когда он отображает правильную группу пользователя, выпадающий эффект комбо не работает, поэтому я не могу его изменить.
Я читал, что ошибка "значение ячейки недопустимо" может быть вызвана данными, если у меня есть пользователь, назначенный отсутствующей группе, но я проверил данные, и они идеально совпадают.
Любая идея о том, что я упускаю. Спасибо
Что я уже пробовал:
Я дважды проверяю базу данных, и данные пользователя и группы идеально совпадают.
Я попробовал debbuging, но событие DataError dataviewgrid не имеет кода.