Diskuze: Binding
Tvůrce
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ve WPF zatím neumím, ale List bindingy neumí, zkus to dát do BindingListu.
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í.
Nemusíš volat žádnou metodu, od toho je ten binding Jakmile do listu něco přidáš, tak se to přidá i do té kontrolky.
A už funguje fíha docela rychlá editace kódu.
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.
Ale musím říct, že ten Binding je fakt úžasný... jedna radost s tím pracovat
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
Jojo toto rozhraní už mám dávno implementované Je to jedna z hlavních vlastností mého "manažeru".
Pokud máš například List tříd Osob tak třída Osoba musí implementovat rozhraní INotifyPropertyChanged.
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 ObservableCollection. Tyto dvě kolekce volají refresh sami. Jiné kolekce by jsi musel implementovat zcela stejně jako jednotlivé properties
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á.
Zobrazeno 11 zpráv z 11.