Я использую DataGridView
в Winforms
, чтобы отобразить информацию о пользователе и их роли. Поскольку я хотел бы использовать ту же сетку, чтобы иметь возможность ОБНОВЛЕНИЯ, я меняю последние DataGridViewTextBoxColumn
на DataGridViewComboBoxColumn
и задаю значенияMember и DataSource
.Winforms ComboBox Значение столбца недействительно
В DataSource DataGridViewComboBoxColumn
я установил Context.Role.
В DataSource DataGridView
Я задал запрос с соединением.
Данные отображаются правильно, но Combo не работает. И я получаю ошибку
Значение datagridviewcomboboxcell недопустимо.
Это мой код:
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();
userDataGridView.Columns.Add(ColID);
userDataGridView.Columns.Add(ColNick);
userDataGridView.Columns.Add(ColLast);
userDataGridView.Columns.Add(ColRole);
ColID.DataPropertyName = "ID";
ColNick.DataPropertyName = "Nick";
ColLast.DataPropertyName = "LastLogin";
ColRole.DataPropertyName = "Role";
ColRole.DataSource = context.Role.ToList();
ColRole.ValueMember = "ID";
userDataGridView.DataSource = query.ToList();
Любая идея о том, что я не хватает?