0

我目前正在使用 C# 窗口应用程序。我在 DataGridView 中使用数据网格视图组合框。单击下拉框时会显示名称字段,如果我从下拉框中选择名称字段,则会在 DataGridView ComboBox 中显示值成员值。

为什么我没有在组合框中获得显示成员值?

在 databindindcomplete 函数中,我定义了 ComboBox 的值:

((DataGridViewComboBoxColumn)dgvItem_1.Columns["Student"]).DataSource = objDBContext.Stu_student;
((DataGridViewComboBoxColumn)dgvItem_1.Columns["Student"]).DisplayMember = "STUDENT_NAME";
((DataGridViewComboBoxColumn)dgvItem_1.Columns["Student"]).ValueMember = "STUDENT_ID";

如果我在下拉列表中显示的 ComboBox 以下值中选择一个值

姓名
-----
拉贾
·拉梅什
·拉尼

如果我在列表中选择 Raja,ComboBox 会在 ComboBox 中显示相应的 STUDENT_ID。但我想在组合框中显示学生姓名。

谁能告诉我为什么我在 DataGridView ComboBox 中获得 ValueMember 值?

4

1 回答 1

1

因此,在我的简单示例中,我有一个 Student 类,如下所示:

public class Student
{
    public string Name { get; private set; }
    public int StudentId{ get; private set; }
    public Student(string name, int studentId)
    {
        Name = name;
        StudentId= studentId;
    }

    private static readonly List<Student> students = new List<Student>
    {
        { new Student("Chuck", 1) },
        { new Student("Bob", 2) }
    };

    public static List<Student> GetStudents()
    {
        return students ;
    }
}

我为组合框设置了我的绑定,如下所示:

        DataGridViewComboBoxColumn comboBoxColumn = (DataGridViewComboBoxColumn)dataGridView1.Columns[0];
        comboBoxColumn .DataSource = Student.GetStudents();
        comboBoxColumn .DisplayMember = "Name";  
        comboBoxColumn .ValueMember = "StudentId";        

我在下拉列表中获取我的学生姓名,当我选择一个时,所选姓名会显示在单元格中。

于 2012-09-10T16:07:40.453 回答