Stránka 1 z 1

LongListSelector chyba po smazání a přidání itemu

Napsal: ned čer 15, 2014 15:37
od Dejv_
Zdravím, mám LongListSelector (LLS) a když nějak změním styl pro určitou položku, kterou potom smažu a potom znovu do LLS přidám nové položky, tak se na některé nové položky použije starý styl. Jako by LLS úplně nesmazal ten data template, ale ponechal ji v paměti pro nové položky. To samé se stane, když přejdu na jinou stránku a vrátím se zpět - styly jsou různě přeházané mezi položkami.

Tady je kód, který můžete zkusit a podívat se, co to dělá :x
XAML - http://pastebin.com/JcB9trmc
code behind - http://pastebin.com/H06JxvAA

LongListSelector chyba po smazání a přidání itemu

Napsal: pon čer 16, 2014 8:49
od steelspace
Ano, pochopil jsi to správně, je to optimalizováno na rychlost tak, že se interně drží list itemy a mění se jenom data = obsah.
Udělej to tak, že veškerý obsah i vzhled bude napojen přes databinding na nějakou položku tvého datového modelu.
V tvém případě si tam udělej konvertor z např. bool na Brush apod.
Jinak se tento případ dá řešit i stylem na LongListSelectoru přes vzhled vybrané položky.

LongListSelector chyba po smazání a přidání itemu

Napsal: úte čer 17, 2014 9:40
od Dejv_
Tak sem to částečně vyřešil tak, že to v eventu ItemRealized nastavím na výchozí hodnoty. Bohužel všechno mi nešlo vyresetovat :(

LongListSelector chyba po smazání a přidání itemu

Napsal: úte čer 17, 2014 13:34
od steelspace
Proč dělat něco v kódu, když máme luxusní databinding? Pak si všechno řídíš daty a nemáš takové problémy. Pokud chceš použít vysloveně vizuální prvky, jako barvy, štětce, velikosti, uděláš si nějaký konvertor.
Autoři komponent s tím takhle počítali a ty jdeš přímo proti jejich záměru.
Navíc si zbytečně snižuješ performance své aplikace - vykonáváš kód, který není nezbytný nebo je duplicitní.

LongListSelector chyba po smazání a přidání itemu

Napsal: úte čer 17, 2014 13:58
od mceza
Podle mě je databinding těžký na pochopení a naučení. Je tam potřeba velká míra abstrakce. Ale když to člověk pochopí, tak v tom jdou nádherně jednoduše dělat skvělé věci.

Re: LongListSelector chyba po smazání a přidání itemu

Napsal: úte čer 17, 2014 15:57
od Dejv_
No já ty styly resim pres storyboard (animace) a jestli sem to dobře pochopil, tak na wp nejdou triggery a bez nich teda nevim jak na to. Za nejaky odkaz na tutoriál bych byl rad

LongListSelector chyba po smazání a přidání itemu

Napsal: stř čer 18, 2014 9:55
od steelspace
Pokud jde o styly kontrolek, tak k tomu slouží tzv. Behaviors. Ty specifikují vzhled a chování jednotlivých částí kontrolek.
http://msdn.microsoft.com/en-us/library ... 19808.aspx" onclick="window.open(this.href);return false;

Odkaz je na WP 8.1, ale funguje to i na WP 8.0. Pokud právě začínáš, tak bych rovnou začal na WP 8.1 API, které je podobné W 8.1.