[ Mikelly @ 18.02.2008. 14:26 ] @
Na formi imam jedan datagridview koji mi konkretno prikazuje tabelu detalje nekog racuna (strani kljuc nekog artikla, kolicinu, cijenu, itd).

Posto ja hocu da u tom datagridview-u prikazujem NE strani kljuc artikla (1, 5, 171 ili slicno, ne nosi nikakvu smislenu informaciju), vec Naziv, Sifru i Kataloski broj (dakle polja tabele artikli koja se naravno ne nalaze u tabeli detalja racuna),
napravio sam 3 DataGridViewComboCell controle, SVAKOJ od njih dodijelio sledece propertyje na iste vrijednosti:

DataSource = ArtikliBindingSource
DataProperty = "Artikal" (Foreign key u tabeli detalja racuna, dakle ono sto se veze)

i mijenjao sledeci property:

DisplayMember = "Naziv" ili "Sifra" ili "Kataloski_broj".

I to zacudo funkcionise. Ali pred korisnikom to ne izgleda bas najbolje. Naime, promjenom vrijednosti nekog od tih combo kontrola promijenice se vezana vrijednost ali se to nece reflektovati na ostale dvije, bar ne prije poziva EndEdit() metode bindingsourcea, sto totalno brka stvari: korisnik ne moze znati koja je od tri prikazane vrijednosti stvarno vezana, a i EndEdit() moze dici exception ako neko od ostalih polja ne prihvata null.

Moje pitanje je, postoji li nacin da se propagiraju promjene u ostala dva comboboxa bez poziva EndEdit() metode???

I vrlo slicno, jedan expression textbox ima prosto vrijednost Kolicina * Cijena. Samom promjenom vrijednosti u textboxovima kolicina i cijena nece se izracunati taj expression.

Drugo pitanje je: Da li postoji neka metoda tipa Recalculate ili Refresh koja ce forsirano prikazati vrijednosti u expression kolonama prije poziva EndEdit() metode.

Nadam se da nijesam bio previse konfuzan.

Pozdrav.
[ prog @ 20.02.2008. 08:48 ] @
Koliko sam te uspio skontati, mislim da to je dobra implementacija. Nisam vidio da li si kod komboboxova inicijalizirao ValueMember, ali ako si reao da radi onda si to implementirao.
Poslije promjene vrijednosti jedne od kolona (mozes koristiti CellValueChanged dogadjaj datagridview kontrole), tebao bi pozvati clanicu UpdateRow ili jednostavno Update ne znam tacno na pamet koje clanice datagridview posjeduje, da bi ti se osvjezili podaci u druge dvije kolone.