BondageMaster Ответов: 0

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 не имеет кода.

0 Ответов