Начните с помещения всех видов в список:
var species = new List<object> {
new Fish("Angler", 5).GetSpecies(),
new Fish("Cod", 3).GetSpecies(),
new Fish("Haddock", 4).GetSpecies(),
new Fish("Hake", 1).GetSpecies(),
new Fish("Horse Mackerel", 0.5m).GetSpecies(),
new Fish("Witches", 3).GetSpecies(),
new Fish("Plaice", 8).GetSpecies(),
new Fish("Skate and Rays",1.8m).GetSpecies(),
new Fish("Whiting", 7).GetSpecies()
}
А затем установите копию списка как DataSource
всех ваших ComboBox
объектов:
Catch1ComboBox.DataSource = new BindingList<object>(species);
Catch2ComboBox.DataSource = new BindingList<object>(species);
Catch3ComboBox.DataSource = new BindingList<object>(species);
Catch4ComboBox.DataSource = new BindingList<object>(species);
Использование new BindingList
предназначено для предотвращения подключения всех полей со списком к одному и тому же источнику и, следовательно, к принудительному удержанию одного и того же значения.
Пример этого приведен в документации Microsoft.