[英]Saving a combo box value using Entity Framework
这个问题似乎很简单,但是当我从组合框中保存所选项目时,我得到了这个结果
{ user_name = Amanda, user_id = 1 }
这是我的用于加载组合框的代码段
//Task list ----> Load users (Responsible person) into a combo box
private void ComboResponsiblePerson()
{
//Get list of users into the combo box
//Task Tab
BindingSource ResponsibleUser = new BindingSource();
ResponsibleUser.DataSource = db.users.Select(_user => new
{
_user.user_name,_user.user_id
}).ToList();
if (ResponsibleUser != null)
{
cbResponsiblePerson.DataSource = ResponsibleUser;
cbResponsiblePerson.DisplayMember = "user_name";
//cbResponsiblePerson.d
cbResponsiblePerson.ValueMember = "user_id";
}
}
这是我的代码段,以获取“组合框”的“选定项”
task.responsible_person = cbResponsiblePerson.SelectedItem.ToString();
Task.Responsible_person是一个字符串属性。
在这里,我只想获取用户名。
这是因为cbResponsiblePerson.SelectedItem
是查询返回的匿名对象之一。 在其上执行ToString()
将打印对象。 如果需要名称,则可能需要将匿名类型定义为实型。
如果您使用WinForms,则可以执行以下操作:
cbResponsiblePerson.GetItemText(cbResponsiblePerson.SelectedItem)
为什么在启动befor!之前,为什么将ResponsibleUser
检查为null
?
要获得user_name
:
cbResponsiblePerson.Text
并获取user_id
:
cbResponsiblePerson.SelectedValue
您的数据源具有Ananymouse Type成员,您可以使用Reflection获取值:
var selectedItem = cbResponsiblePerson.SelectedItem;
var idp = selectedItem.GetProperty("user_id");
var namep = selectedItem.GetProperty("user_name");
var user_id = idp.GetValue(selectedItem);
var user_name = namep.GetValue(selectedItem);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.