Diskuze: WPF refresh listboxu.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 20 zpráv z 20.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
já je vždycky všechny vymazal a znovu načetl 
Vymazal si obsah listboxu? Ako? ListBox.ClearValue()? Čo si dal do zátvorky? Nevedel som, čo tam dať.
Ešte som videl ListBox = null a potom znovu načítať, ale nefungovalo mi to.
Mysli takto, jestli ne tak se kouknu
ListBox.Items.Clear();
Našel jsem tohle.
http://stackoverflow.com/…stbox-in-wpf
Musíš zavolat ListBox.InvalidateArrange a potom ListBox.UpdateLayout.
Ve WPF existuje ObservableCollection, která umí reagovat na změny v
datech.
http://www.itnetwork.cz/…gicka-vrstva
To máš pravdu a používam to. Ale to funguje len na kontrolky ako sú napríklad label, textbox, textblock ...., na listbox to nefunguje.
Teda to vlastne funguje keď napríklad pridám nový záznam, ale keď napríklad zoradím záznaky v kolekcii, nefunguje to a práve to je môj problém.
Ak ťa zaujíma, ako to zatiaľ funguje, stiahni si to a otestuj: http://skolka-jazyka-c.freespace.sk/…oad/file.php?…
Nebude to až také jednoduché, nefunguje to a zatiaľ to nebudem riešiť,
mám pred sebou dokončenie logickej časti.
Neskôr pri vychytávkach sa na to pozriem dôkladnejšie.
Pokud potřebuješ při změně znovu načíst data do listboxu, tak musíš vyprázdnit tu kolekci a znovu ji načíst. Pak se ti upraví i listbox. Takže si před naplněním kolekce dej
kolekce.Clear();
a pak ji znovu naplň...
Díky, to ma nenapadlo, len dúfam, že to nebude mať veľký vplyv na
rýchlosť aplikácie.
Po práci to vyskúšam.
Nemyslím si, že to bude mít nějaký vliv na rychlost aplikace. Pokud používáš jako zdroj dat pro listbox kolekci dat, tak plnění, změny apod. musíš vždycky provádět na té kolekci a pak to načítat do listboxu, bo jinak tě to udělat nenechá...
Písal som to preto, že po zmene (pridanie, úprava) sa kolekcia automaticky uloží do xml súboru. Podľa tvojej rady potom kolekciu vyprázdnim a znovu naplním s xml súboru a to si myslím, že môže trošku spomaliť program.
Včera som nemal čas to otestovať, tak hádam dnes to vyjde.
Tahám z xml souboru přes tisíc záznamů podle různých kritérií a žádné zpomalení nepozoruji...
Vyskúšal som to, ale nefunguje.
skladnik.Uloz(skladnik.DhmZaznamy, "DhmData.xml");
skladnik.DhmZaznamy.Clear();
skladnik.DhmZaznamy = skladnik.Nacitaj<ObservableCollection<DhmZaznam>>("DhmData.xml");
ListBox sa vyprázdni, ale aj ostane prázdny. Ešte tam musí byť nejaká finta, aby to pracovalo.
Božinku, ono stačí refrešnúť listbox.
DhmOsobaListBox.Items.Refresh();
Takže žiadne mazanie a znovu načítanie.
Zobrazeno 20 zpráv z 20.