C# - How to set a ComboBox selectedItem from specific value?

c#, combobox

Solution

You need to set `DataSources` in case of WinForm / `ItemsSource` in case of WPF to your cobobox then you can use SelectedValue properly.

[Update] Instead of add each item to your combobox directly, you should create collection to hold those items and then set it as your DataSource (WinForm) / ItemsSource (WPF)

foreach (Business.IEditeur editeur in _livreManager.GetPublishers())
{
    //comboPublisher.Items.Add(editeur);
    list.Add(editeur);
}

combobox.ItemsSource = editeur;
combobox.SelectedValuePath = "value_property_name";
combobox.DisplayMemberPath = "display_property_name";

Problem

I have this already populated ComboBox and all I want to do is to set it to a specific selectedItem knowing its value. I'm trying this, but nothing happens: ``` comboPublisher.SelectedValue = livre.Editeur; ``` Considering the fact that I already implemented Equals(..) method in my class Editeur, this way: ``` public bool Equals(IEditeur editeur) { return (this.Nom == editeur.Nom); } ``` This is how I populate my ComboBox: ``` foreach (Business.IEditeur editeur in _livreManager.GetPublishers()) { comboPublisher.Items.Add(editeur); } ``` Any idea ? Thanks ! [EDIT]: This seems to work with : ``` comboPublisher.SelectedItem = livre.Editeur; ``` My Equals method is: ``` public override bool Equals(object obj) { IEditeur editeur = new Editeur(); if (!(obj is System.DBNull)) { editeur = (IEditeur)obj; return (this.Nom == editeur.Nom); } return false; } ```

Original source