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

ドロップダウンリストに表示される値に続いてコンボボックスで値を選択すると

名前
-----
ラジャ
・ラメシュ・
ラニ

リストで Raja を選択すると、ComboBox に対応する STUDENT_ID が ComboBox に表示されます。しかし、ComboBoxに生徒名を表示したいです。

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 に答える