Winforms 如何从变量中的Linq查询中获取选定项

Winforms 如何从变量中的Linq查询中获取选定项,winforms,linq,entity-framework,c#-4.0,Winforms,Linq,Entity Framework,C# 4.0,当我在组合框中选择员工姓名时,我需要在文本框中显示员工的出生日期 using (LINQtoEntitiesEntities MyEntities = new LINQtoEntitiesEntities()) { ObjectQuery<Employee> Emp = MyEntities.Employee; comboBox1.DataSource = (from u in Emp select new { u.ID, u.Name, u.BirthDate })

当我在组合框中选择员工姓名时,我需要在文本框中显示员工的出生日期

using (LINQtoEntitiesEntities MyEntities = new LINQtoEntitiesEntities())
{
    ObjectQuery<Employee> Emp = MyEntities.Employee;
    comboBox1.DataSource = (from u in Emp select new { u.ID, u.Name, u.BirthDate }).ToList();
    comboBox1.ValueMember = "ID";
    comboBox1.DisplayMember = "Name";
    TextBox1.Text = ....................... ;
}
使用(linqtoEntities MyEntities=new linqtoEntities())
{
ObjectQuery Emp=MyEntities.Employee;
comboBox1.DataSource=(从Emp中的u选择新的{u.ID,u.Name,u.BirthDate});
comboBox1.ValueMember=“ID”;
comboBox1.DisplayMember=“Name”;
TextBox1.Text=;
}
我需要从查询的变量中获取
u.BirthDate

我该怎么做呢?

也许是这样的

TextBox1.Text = ((IEnumerable<Employee>)comboBox1.DataSource)
    .Where(e => e.ID == comboBox1.Value)
    .First().BirthDate;
TextBox1.Text=((IEnumerable)comboBox1.DataSource)
.Where(e=>e.ID==comboBox1.Value)
.第一次().生日;

也许是这样的

TextBox1.Text = ((IEnumerable<Employee>)comboBox1.DataSource)
    .Where(e => e.ID == comboBox1.Value)
    .First().BirthDate;
TextBox1.Text=((IEnumerable)comboBox1.DataSource)
.Where(e=>e.ID==comboBox1.Value)
.第一次().生日;

要立即添加,请尝试:

var employees = (from u in Emp select new { u.ID, u.Name, u.BirthDate }).ToList();
comboBox1.DataSource = employees;

if(employees.Any()) 
    TextBox1.Text = employees.First(x => x.BirthDate);
要在更改组合框时动态更改它,可以将以下事件处理程序添加到SelectionChangeCommitted事件中:

private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
    ComboBox senderComboBox = (ComboBox) sender;

    var selectedObject = senderComboBox.SelectedItem;

    if(selectedObject == null) return;

    TextBox1.Text = ((IEnumerable<Employee>)senderComboBox.DataSource)
                        .First(emp => emp.ID == senderComboBox.Value).BirthDate;

}
private void组合框1\u SelectionChangeCommitted(对象发送方,事件参数e)
{
组合框发送者组合框=(组合框)发送者;
var selectedObject=senderComboBox.SelectedItem;
if(selectedObject==null)返回;
Text=((IEnumerable)senderComboBox.DataSource)
.First(emp=>emp.ID==senderComboBox.Value);
}

(假设生日已经是一个字符串)

要立即添加,请尝试:

var employees = (from u in Emp select new { u.ID, u.Name, u.BirthDate }).ToList();
comboBox1.DataSource = employees;

if(employees.Any()) 
    TextBox1.Text = employees.First(x => x.BirthDate);
要在更改组合框时动态更改它,可以将以下事件处理程序添加到SelectionChangeCommitted事件中:

private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
    ComboBox senderComboBox = (ComboBox) sender;

    var selectedObject = senderComboBox.SelectedItem;

    if(selectedObject == null) return;

    TextBox1.Text = ((IEnumerable<Employee>)senderComboBox.DataSource)
                        .First(emp => emp.ID == senderComboBox.Value).BirthDate;

}
private void组合框1\u SelectionChangeCommitted(对象发送方,事件参数e)
{
组合框发送者组合框=(组合框)发送者;
var selectedObject=senderComboBox.SelectedItem;
if(selectedObject==null)返回;
Text=((IEnumerable)senderComboBox.DataSource)
.First(emp=>emp.ID==senderComboBox.Value);
}
(假设生日已经是一个字符串)