Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
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 Hartinger
Vlastník
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Hartinger: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
11.11.2013 17:04
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
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 Hartinger
Vlastník
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
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 Hartinger
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
11.11.2013 17:31
Časem je vše možné.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
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
Tvůrce
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.