【问题标题】:How can I get a selected item from a Linq query in a variable如何从变量中的 Linq 查询中获取选定项目
【发布时间】:2012-03-31 04:57:42
【问题描述】:

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

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 我该怎么做?

【问题讨论】:

    标签: winforms linq entity-framework c#-4.0


    【解决方案1】:

    要立即添加它,请尝试:

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

    (假设 Birthdate 已经是一个字符串);

    【讨论】:

      【解决方案2】:

      也许是这样的?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        相关资源
        最近更新 更多