【发布时间】:2017-02-05 10:47:11
【问题描述】:
我在Winforms 中使用DataGridView 来显示用户信息和他们拥有的角色。
因为我想使用相同的网格来更新我改变的角色
最后一个 DataGridViewTextBoxColumn 为 DataGridViewComboBoxColumn 并设置 valueMember 和 DataSource 属性。
在DataGridViewComboBoxColumn的DataSource中我设置了Context.Role。
在DataGridView 的DataSource 中,我使用连接设置查询。
数据显示正确,但 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();
知道我缺少什么吗?
【问题讨论】:
标签: winforms datagridview datagridviewcombobox