2012-03-30 53 views
0

当我在组合框中选择雇员姓名,我需要在一个文本框我怎样才能从LINQ查询选定的项目在一个变量

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 = ....................... ; 
} 

我需要得到u.BirthDate在变量显示员工出生日期从查询 我该怎么做?

回答

1

也许这样?

TextBox1.Text = ((IEnumerable<Employee>)comboBox1.DataSource) 
    .Where(e => e.ID == comboBox1.Value) 
    .First().BirthDate; 
4

添加它马上蝙蝠尝试:

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; 

} 

(假定生日是一个字符串);

相关问题