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

Vývoj aplikací v Silverlightu
Odpovědět
Dejv_
přispěvatel
přispěvatel
Příspěvky: 103
Registrován: stř črc 24, 2013 11:28
Zařízení: OnePlus 3T

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

Příspěvek 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
steelspace
smartmaniak
smartmaniak
Příspěvky: 1094
Registrován: stř lis 24, 2010 22:29
Zařízení: L920, L930, L950 XL, iPhone 7 Plus
Bydliště: Líbeznice

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

Příspěvek 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.
Dejv_
přispěvatel
přispěvatel
Příspěvky: 103
Registrován: stř črc 24, 2013 11:28
Zařízení: OnePlus 3T

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

Příspěvek 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 :(
steelspace
smartmaniak
smartmaniak
Příspěvky: 1094
Registrován: stř lis 24, 2010 22:29
Zařízení: L920, L930, L950 XL, iPhone 7 Plus
Bydliště: Líbeznice

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

Příspěvek 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í.
mceza

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

Příspěvek 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.
Dejv_
přispěvatel
přispěvatel
Příspěvky: 103
Registrován: stř črc 24, 2013 11:28
Zařízení: OnePlus 3T

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

Příspěvek 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
steelspace
smartmaniak
smartmaniak
Příspěvky: 1094
Registrován: stř lis 24, 2010 22:29
Zařízení: L920, L930, L950 XL, iPhone 7 Plus
Bydliště: Líbeznice

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

Příspěvek 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.
Odpovědět

Zpět na „Silverlight“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů