Search code examples
c#.netwinformscomboboxdatasource

Binding Combobox Using Dictionary as the Datasource


I'm using .NET 2.0 and I'm trying to bind a combobox's Datasource to a sorted dictionary.

So the error I'm getting is "DataMember property 'Key' cannot be found on the Datasource".

        SortedDictionary<string, int> userCache = UserCache.getSortedUserValueCache();
        userListComboBox.DataSource = new BindingSource(userCache, "Key"); //This line is causing the error
        userListComboBox.DisplayMember = "Key";
        userListComboBox.ValueMember = "Value";

Solution

  • SortedDictionary<string, int> userCache = new SortedDictionary<string, int>
    {
      {"a", 1},
      {"b", 2},
      {"c", 3}
    };
    comboBox1.DataSource = new BindingSource(userCache, null);
    comboBox1.DisplayMember = "Key";
    comboBox1.ValueMember = "Value";
    

    But why are you setting the ValueMember to "Value", shouldn't it be bound to "Key" (and DisplayMember to "Value" as well)?