这个问题看起来很简单,但是当我从组合框中保存所选项目时,我得到了这个结果
{ 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是一个字符串属性。
这里我只想获取用户名。
答案 0 :(得分:1)
那是因为cbResponsiblePerson.SelectedItem
是查询返回的匿名对象之一。在其上执行ToString()
打印对象。如果您想要名称,则可能需要将匿名类型定义为实际类型。
如果您使用的是WinForms,则可以执行以下操作:
cbResponsiblePerson.GetItemText(cbResponsiblePerson.SelectedItem)
答案 1 :(得分:0)
为什么在启动时{0} ResponsibleUser
检查{。}}。
获取null
:
user_name
获得cbResponsiblePerson.Text
:
user_id
您的DataSource具有Ananymouse Type成员,您可以使用Reflection来获取值:
cbResponsiblePerson.SelectedValue