[ Predrag Supurovic @ 07.10.2011. 15:42 ] @
Imam prilicno obican zahtev da popotrebi osve\im prikay samo jednog, tekuceg sloga tabele, kako bi prikayao azurne podatke koji se nalaye u bazi.

Trenutno, jedini nacin da osvežim podatke koji znam je da ispraznim DataTable pa da je ponovo napunim sa TableAdapter.Fill() ali je to neekonomično, jer se tako nanovo ćitaju svi slogovi tabele. Meni treba da osvežim samo tekući slog.

Postoji li način?

[ mmix @ 07.10.2011. 20:22 ] @
Ako koristis DataTale onda koristis i DataSet pretpostavljam? Napravi jos jednu komandu u adapteru koja ce da vrati samo jedan red (koristi kljuc kao parametar). Pozovi tu komandu na blanko datasetu i onda ga Merge-uj sa trenutnom tabelom koristeci preserveChanges=false. E sad nakon toga INotifyPropertyChanged bi trebao da osigura da se nova vrednost odmah pojavi u svim bindovanim kontrolama, ako ne moraces da refreshujes binding.
[ nikitaGradov @ 20.10.2011. 13:04 ] @
Citat:
mmix: Ako koristis DataTale onda koristis i DataSet pretpostavljam? Napravi jos jednu komandu u adapteru koja ce da vrati samo jedan red (koristi kljuc kao parametar). Pozovi tu komandu na blanko datasetu i onda ga Merge-uj sa trenutnom tabelom koristeci preserveChanges=false. E sad nakon toga INotifyPropertyChanged bi trebao da osigura da se nova vrednost odmah pojavi u svim bindovanim kontrolama, ako ne moraces da refreshujes binding.


Radim (jos uvijek u Studio .NET 2005) i koliko sam uspio da primijetim, INotifyPropertyChanged ne postoji u ovoj verziji.

Pitanje: postoji li u 2005-ci neki mehanizam za 'refresh' bindovanih kontrola ili ne?

Hvala na odgovoru ...
[ nikitaGradov @ 20.10.2011. 13:55 ] @
Mozda nisam bio precizan: ja hocu da kad upisem 'new item' u bazu, da se isti pojavi u kontroli (recimo, listbox-u), koja prikazuje listu item-a i koja je bindovana na BindingSource - da li je to moguce uraditi preko BindingSource-a ili je jedino rjesenje SqlNotify ?
[ mmix @ 20.10.2011. 13:55 ] @
Ah u pravu si, datasource ne podrzava INotifyChanged, zaboravilo se malo (a i anviklo na INPC ;)), tako da ces morati sam da obavestis bidningsource da je doslo do promene.

Ako si promenio samo trnenutni red, pozovi bindingsource.ResetItem(position) da osvezis trenutni red, ili ako je promena malo veca a bindovano je na neku multi-row kontrolu (grid, list) pozoves bindingSource.ResetBindings(false);


E sad, ako ti mislis da osvezis source kad je doslo do promene na serveru od strane drugih igraca, to je potpuno druga prica. Najjednostavnije resenje ti je periodic update po nekom kljucu (lastmodifieddatetime?) i ide sve do komplikovanih scenarija koji ukljucuju notification services.