Questãoo de DataBinding de varias comboxes (windows Forms)

27/05/2008

0

Olá a todos!

Tenho vindo a experimentar umas questões ´estranhas´ com databings em
Windows Forms (VS 2008 framework 3.5).

Tenho um form, bastante simples, com 2 comboboxes e uma textbox.

No load do form, eu preencho as comboboxes com os meus dados, através
de dois BindingSources diferentes, um para cada combo. Ate aqui tudo bem.

Posteriormente adiciono um binding a ambas as combos para 2
propriedades do meu custom object (´ID1´ e ´ID2´), para quando carrego
o meu objecto os dados aparecerem logo. Isto é feito de cada vez que o
meu objecto é criado (por exemplo, no form load ou quando se carrega
no botao novo).

O meu problema é que quando selecciono um item na segunda combobox, o
que quer que tenha seleccionado na primeira deixa de estar
seleccionado. Fiz alguns testes e cheguei à conclus&ãoo que se não
adicionar os bindings ao meu objecto, este comportamento das combos
não acontece, o que me leva a desconfiar que o problema está aí.

O meu cenário é mais ou menos o seguinte:

No form load, cada uma das combos tem um novo ´BindingContext´:

Combo1.BindingContex = new BindingContext();
Combo2.BindingContex = new BindingContext();


Dois ´BindigSources´ sao prenchidos com os mesmos dados:

BindingSource1.DataSource = MyService.FetchData();
BindingSource2.DataSource = MyService.FetchData();

As combos são então preenchidas pelos dois ´BindingSources´:

Combo1.DisplayMember = "Description";
Combo1.ValueMember = "ID";
Combo1.DataSource = BindingSource1;

Combo2.DisplayMember = "Description";
Combo2.ValueMember = "ID";
Combo2.DataSource = BindingSource2;


Depois, crio um novo objecto e faço reset dos bindings ao meu objecto:

ObjObject myObject = new ObjObject();

Combo1.DataBindings.Clear();
Combo1.DataBindings.Add("SelectedValue", myObject, "ID1");

Combo2.DataBindings.Clear();
Combo2.DataBindings.Add("SelectedValue", myObject, "ID2");

TextBox1.DataBindings.Clear();
TextBox1.DataBindings.Add("Text", myObject, "TextField");


Estarei a fazer alguma coisa ´impossivel´ ou simplesmente alguma coisa
mal? Alguém pode dar aqui uma ajudinha?

Obrigado!!


Stargazer

Stargazer

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar