DataGridViewComboBoxCell Binding - “value is not valid”

前端 未结 10 806
臣服心动
臣服心动 2020-11-30 09:45

I\'m trying to bind separate ComboBox cells within a DataGridView to a custom class, and keep getting an error

DataGridViewComboBoxCell value is not v

10条回答
  •  青春惊慌失措
    2020-11-30 10:02

    Here's a complete example with a basic form and DataGridView added via the designer:

    Setup and bindings:

    private void Form1_Load(object sender, EventArgs e)
    {
    
        var colors = new List()
        {
            new Code() {Value= "R", Text = "Red"},
            new Code() {Value= "G", Text = "Green"},
            new Code() {Value= "B", Text = "Blue"}
        };
    
        var users = new List()
        {
            new User() {Name = "Briana", FavoriteColor = "B"},
            new User() {Name = "Grace", FavoriteColor = "G"}
        };
    
        var colorCol = new DataGridViewComboBoxColumn();
        colorCol.DataSource = colors;
        colorCol.DisplayMember = "Text";
        colorCol.ValueMember = "Value";
        colorCol.DataPropertyName = "FavoriteColor";
    
        dataGridView1.Columns.Add(colorCol);
        dataGridView1.DataSource = users;
    
    }
    

    Some classes:

    public class Code
    {
        public string Value { get; set; }
        public string Text { get; set; }
    }
    
    public class User
    {
        public string Name { get; set; }
        public string FavoriteColor { get; set; }
    }
    

提交回复
热议问题