簡體   English   中英

c#:如何從linq查詢中設置combobox valuemember

[英]c#: how to set combobox valuemember from linq query

好吧所以我有組合框,而數據源是linq查詢的結果

//load QA names
            var qaNames =
                from a in db.LUT_Employees
                where a.position == "Supervisor" && a.department == "Quality Assurance"
                select new { a, Names = a.lastName + ", " + a.firstName };

            cboQASupervisor.DataSource = qaNames;
            cboQASupervisor.DisplayMember = "Names";

我遇到的問題是當我嘗試添加下一行代碼時

cboQASupervisor.ValueMember = "ID";

我在運行時遇到錯誤, 它無法轉換匿名類型。 我該如何解決?

更正:錯誤是:

無法綁定到新值成員。 參數名稱:value

您將ID指定為值字段,但您的匿名類型中沒有ID屬性。
假設您的LUT_Employees對象中有ID:

var qaNames = (
    from a in db.LUT_Employees
    where a.position == "Supervisor" && a.department == "Quality Assurance"
    select new { a.ID, Names = a.lastName + ", " + a.firstName })
    .ToList();

cboQASupervisor.DataSource = qaNames;
cboQASupervisor.DisplayMember = "Names";
cboQASupervisor.ValueMember = "ID";

你可以試試這個:

       var qaNames =
       from a in db.LUT_Employees
       where a.position == "Supervisor" && a.department == "Quality Assurance"
        select new { Id = a.ID,  Names = a.lastName + ", " + a.firstName };

        cboQASupervisor.DataSource = qaNames.ToList();
        cboQASupervisor.DisplayMember = "Names";
        cboQASupervisor.ValueMember = "Id";

.ToList()添加到數據源行中的代碼中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM