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;
}
Set the Text property.
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";
you've created a new implementation of Equals that hides the one in Object. Try declaring it with public override bool
and see if that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With