2 comboboxy, 1 datasource i jego aktualizacja

0

Mam sobie tablicę powiedzmy taką:

private string[] lista = new string[] { "czerwony", "biały", "zielony"};

na formatce są 2 comboboxy i ustawiam ich datasource:

comboBox1.DataSource = lista;
comboBox1.BindingContext = new BindingContext();
comboBox2.DataSource = lista;
comboBox2.BindingContext = new BindingContext();

i wszystko fajnie, dotąd działa jak należy.

ale chciałbym zmienić powiedzmy biały na czarny
lista[1]="czarny"

i pytanie co zrobić aby ta zmiana była widoczna w obu comboxach?

0

ponownie zbinodowac dane

0
massther napisał(a)

ponownie zbinodowac dane

to znaczy co? ponownie:

comboBox1.DataSource = lista;
comboBox1.BindingContext = new BindingContext();
comboBox2.DataSource = lista;
comboBox2.BindingContext = new BindingContext();

?
niestety tak nie działa.

0

oj, nie zauwazylem tych new BindingContext()...
po co ci to?
jesli to aplikacja win forms, wystarczy przypisanie nowej DataSource
jesli to asp .net to po ustawieniu DataSource odpalasz DataBind()
po wlasciwosci BindingContext wnioskuje ze to win forms, ale wiesz do czego to sluzy, sorry ale nie chce mi sie tlumaczyc, wystarczy ze sie tego pozbedziesz, a jak chcesz dowiedziec sie do czego i jak uzywac bindingContext to czytaj msdn

0

oj, nie zauwazylem tych new BindingContext()...
po co ci to?

bez tego wybór jakiejś wartości w jednym comboboxie powoduje zmianę również w drugim a tego nie chcę

jeśli to aplikacja win forms, wystarczy przypisanie nowej DataSource

no niestety samo przypisanie nowej DataSource nie działa

ale znalazłem sposób, wystarczy najpierw wpisać null:

            comboBox1.DataSource = null;
            comboBox2.DataSource = null;

            lista[1] = "czarny";

            comboBox1.DataSource = lista;
            comboBox2.DataSource = lista;

muszę jeszcze tylko przepisać funkcję na zdarzenie SelectedIndexChanged bo po comboBox1.DataSource = null; jest wywoływana i index wynosi -1;
</quote>

1 użytkowników online, w tym zalogowanych: 0, gości: 1