Avatar
Jakub Lásko[Saarix]:11.11.2013 16:32

Zdravím dělám si ve WPF takový manažer úkolů a používám Binding, ale mám menší problém s Refreshem. Při loadu page nastavím DataGridu ItemSource na svůj List<Ukoly> a pak jakmile přidám nový záznam do onoho listu, tak se v DataGridu neobjeví. Nenašel jsem žádnou metodu k Refreshi... poradil by někdo prosím?

Odpovědět 11.11.2013 16:32
Časem je vše možné.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Čápka:11.11.2013 17:04

Ve WPF zatím neumím, ale List bindingy neumí, zkus to dát do BindingListu.

Nahoru Odpovědět  +1 11.11.2013 17:04
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:11.11.2013 17:24

Jojo v BindingListu už je dostupná metodu ResetBindings :-) takže si s tím pohraji a bude to fungujovat perfektně. Díky moc za navedení.

Nahoru Odpovědět 11.11.2013 17:24
Časem je vše možné.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Čápka:11.11.2013 17:25

Nemusíš volat žádnou metodu, od toho je ten binding :D Jakmile do listu něco přidáš, tak se to přidá i do té kontrolky.

Nahoru Odpovědět 11.11.2013 17:25
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:11.11.2013 17:26

A už funguje :-) fíha docela rychlá editace kódu.

Nahoru Odpovědět 11.11.2013 17:26
Časem je vše možné.
Avatar
Odpovídá na Jakub Lásko[Saarix]
Jakub Lásko[Saarix]:11.11.2013 17:27

Jo to ano, já tu jen mám metodu SetDataSource, protože měním mezi X BindingListy, ale šlo o to, jakmile se nezměnil source, ale přidal se item, tak nedošlo k refreshi, což už nyní ano.

Nahoru Odpovědět 11.11.2013 17:27
Časem je vše možné.
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:11.11.2013 17:31

Ale musím říct, že ten Binding je fakt úžasný... jedna radost s tím pracovat 8-)

Nahoru Odpovědět  ±0 11.11.2013 17:31
Časem je vše možné.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Čápka:11.11.2013 17:33

Jo, zrovna o tom píšu v Javě :) Dávám ho do všech seriálů, aby se to lidí naučili. Hlavně počítej s tím, že se to refreshuje jen při změně toho listu, ne při změne jeho položky. Ale i to se dá udělat, musíš u položky implementovat rozhraní IPropertyChanged nebo tak nějak, někdy jsem tu o tom psal :P

Nahoru Odpovědět 11.11.2013 17:33
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:11.11.2013 17:38

Jojo toto rozhraní už mám dávno implementované :-) Je to jedna z hlavních vlastností mého "manažeru".

Nahoru Odpovědět 11.11.2013 17:38
Časem je vše možné.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Jakub Lásko[Saarix]
Petr Nymsa:12.11.2013 7:30

Pokud máš například List tříd Osob tak třída Osoba musí implementovat rozhraní INotifyProper­tyChanged.

Potom (záleží jak si to implementuješ) máš properties své třídy například takto

private int vek;
public int Vek{get {return vek;} set{vek = value; Set("Vek");}}

public event //NejakyEventHandler od ozhraní

private void Set(string property name) // zde zpracuješ událost a předáš property

Metoda Set zajistí oznámení že se změnila hodnota a díky tomu se obnoví všechyn controly které bindují danou property.

Co se týče kolekcí ve WPF máš BindingList, v ModernUI či WP můžeš využít ObservableCollec­tion. Tyto dvě kolekce volají refresh sami. Jiné kolekce by jsi musel implementovat zcela stejně jako jednotlivé properties :)

Nahoru Odpovědět 12.11.2013 7:30
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Jakub Lásko[Saarix]:12.11.2013 10:04

Jojo díky moc, to rozhraní a PropertyChange plně chápu, ale šlo jen o to, že jsem zatím nepoužíval BindingList, takže jsem o něm nevěděl. Nyní už vše jede jak má. ;)

Nahoru Odpovědět 12.11.2013 10:04
Časem je vše možné.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.