C# 填充组合框的值和文本

C# 填充组合框的值和文本,c#,winforms,linq,combobox,C#,Winforms,Linq,Combobox,我的表格上有一个名为ddCourses的组合框。我试图用LINQ表达式加载它,但是当我运行程序时,组合框显示了我用LINQ语句加载的值COURSE\u ID和text COURSE\u TITLE,而不仅仅是我想要隐藏值COURSE\u ID的文本 这是我的密码: private void LoadDropDowns() { var db = new DataClasses1DataContext(); ddCourse.DataSource =

我的表格上有一个名为ddCourses的组合框。我试图用LINQ表达式加载它,但是当我运行程序时,组合框显示了我用LINQ语句加载的值COURSE\u ID和text COURSE\u TITLE,而不仅仅是我想要隐藏值COURSE\u ID的文本

这是我的密码:

    private void LoadDropDowns()
    {
        var db = new DataClasses1DataContext();
        ddCourse.DataSource = (from c in db.COURSE_MASTERs
                               select new { c.COURSE_ID, c.COURSE_TITLE }).ToList();
    }
如何设置组合框每行的值和文本

我看到的其他示例使用了DataTextField和DataValueField属性,但我似乎无法使用这些属性

我的using语句中是否缺少允许我访问DataTextField和DataValueField属性的引用

以下是我的“使用”声明:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
编辑:DataTextField和DataValueField属性对我不可用。这是因为它们是System.Web.UI的一部分,而我使用的是winform吗

您需要先设置DisplayMember和ValueMember:

您需要先设置DisplayMember和ValueMember:


需要显示和值成员

ddCourse.DataSource = (from c in db.COURSE_MASTERs 
                       select new {course_id = c.COURSE_ID, course_title = c.COURSE_TITLE }).ToList();
comboBox.DisplayMember="course_title";
comboBox.ValueMember="course_id ";

需要显示和值成员

ddCourse.DataSource = (from c in db.COURSE_MASTERs 
                       select new {course_id = c.COURSE_ID, course_title = c.COURSE_TITLE }).ToList();
comboBox.DisplayMember="course_title";
comboBox.ValueMember="course_id ";

您还需要声明另外两项适当性:

cmbbox.ValueMember // value selected

cmbbox.DisplayMember // value display 

您还需要声明另外两项适当性:

cmbbox.ValueMember // value selected

cmbbox.DisplayMember // value display 

您可以从包含所需属性的查询中返回类,而不是返回匿名类型。然后重写此类的ToString方法,并使用ToString方法返回所需的属性。ToString方法结果将显示在组合框上

这里的示例代码块对我有用

    public class ComboItem
        {
            public string Text { get; set; }
            public string Value { get; set; }

            public override string ToString()
            {
                return Text;
            }
        }

  private void Form1_Load(object sender, EventArgs e)
        {
            List<ComboItem> itemList = new List<ComboItem>()
            {
                new ComboItem() { Text="A", Value="1"},
                new ComboItem() { Text="B", Value="2"},
                new ComboItem() { Text="C", Value="3"},
                new ComboItem() { Text="D", Value="4"},
                new ComboItem() { Text="E", Value="5"}
            };

            comboBox1.DataSource = itemList;
        }

您可以从包含所需属性的查询中返回类,而不是返回匿名类型。然后重写此类的ToString方法,并使用ToString方法返回所需的属性。ToString方法结果将显示在组合框上

这里的示例代码块对我有用

    public class ComboItem
        {
            public string Text { get; set; }
            public string Value { get; set; }

            public override string ToString()
            {
                return Text;
            }
        }

  private void Form1_Load(object sender, EventArgs e)
        {
            List<ComboItem> itemList = new List<ComboItem>()
            {
                new ComboItem() { Text="A", Value="1"},
                new ComboItem() { Text="B", Value="2"},
                new ComboItem() { Text="C", Value="3"},
                new ComboItem() { Text="D", Value="4"},
                new ComboItem() { Text="E", Value="5"}
            };

            comboBox1.DataSource = itemList;
        }

工作得很有魅力!非常感谢!定时器一响,我就把这个标记为答案。工作得很有魅力!非常感谢!一旦计时器启动,我会将此标记为答案。应区分大小写。记住,这是C,应该区分大小写。记住这是c