Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-02-2011, 10:57   #1
mto89
Senior Member
 
L'Avatar di mto89
 
Iscritto dal: Jan 2007
Città: villa verucchio
Messaggi: 1921
[C#] Perplessità sul data binding

Ciao a tutti, sto facendo un piccolo progetto in WPF, ho una listbox la cui itemsource è associata a una lista di struct, la quale a sua volta è riempita da un file XML. Il valore della listbox cambia in base alla data selezionata dall'utente.

Ho notato che col seguente codice:
listBox1.ItemsSource = elenco;
listBox1.DisplayMemberPath = "titolo";

non aggiorna la listbox quando cambio data, mentre col seguente frammento:
listBox1.ItemsSource = null;
listBox1.ItemsSource = elenco;
listBox1.DisplayMemberPath = "titolo";

funziona perfettamente.

Col debug ho controllato e la lista "elenco" viene correttamente aggiornata, perchè è necessario porre a "null" l'itemSource ?
__________________
CPU: Amd Phenom II 955--MB: Gigabyte GA-890GPA-UD3H--RAM:4 GB DDR3--SV: ATI Radeon HD 5770--HD: Western Digital Caviar Black 500 gb--ALI:: Corsair 650w--MONITOR: SyncMaster P2270--ROUTER: Netgear DG834G--SO: Win 7 Professional 64 bit
mto89 è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2011, 12:41   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Perche' non usi lo XAML?
In XAML dovrebbe essere qcs tipo

Codice:
<ListBox x:Name="listBox1" ItemSource="{Binding elenco}"
           DisplayMemberPath = "titolo" SelectedItem="{Binding selezionato}"/>
elenco deve essere di tipo ObservableCollection se viene riempito dopo che la form effettua il binding (ovvero circa quando la form viene aperta)
Se invece venisse riempita prima, una qualsiasi IEnumerable dovrebbe andare bene.

Non ho capito cosa intendi per " non aggiorna la listbox quando cambio data"
che data?

Comunque il valore da prendersi sara' SelectedItem, ed e' bene effettuarne il binding da qualche parte
"selezionato" nell'esempio di cui sopra dovra' essere dello stesso tipo degli elementi di elenco.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 03-02-2011 alle 12:44.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2011, 17:42   #3
mto89
Senior Member
 
L'Avatar di mto89
 
Iscritto dal: Jan 2007
Città: villa verucchio
Messaggi: 1921
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Perche' non usi lo XAML?
In XAML dovrebbe essere qcs tipo

Codice:
<ListBox x:Name="listBox1" ItemSource="{Binding elenco}"
           DisplayMemberPath = "titolo" SelectedItem="{Binding selezionato}"/>
elenco deve essere di tipo ObservableCollection se viene riempito dopo che la form effettua il binding (ovvero circa quando la form viene aperta)
Se invece venisse riempita prima, una qualsiasi IEnumerable dovrebbe andare bene.

Non ho capito cosa intendi per " non aggiorna la listbox quando cambio data"
che data?

Comunque il valore da prendersi sara' SelectedItem, ed e' bene effettuarne il binding da qualche parte
"selezionato" nell'esempio di cui sopra dovra' essere dello stesso tipo degli elementi di elenco.
Scusa ho fatto un pò di confusione nel copia-incollare
Allora nel codice ho questo:
this.DataContext = null;
this.DataContext = elenco;
listBox1.DisplayMemberPath = "titolo";


mentre nel codice XAML in corrispondenza della listbox ho
listBox1.itemSource = {Binding} e poi IsSyncronizedWithCurrentItem a true perchè in base al valore scelto ho valori in altre textbox.

E appunto, senza mettere this.DataContext = null;, quando cambio la data selezionata in un datePicker non vengono aggiornati i dati della listbox. E non capisco perchè sinceramente.

In pratica uno sceglie la data, vengono aggiornati i valori della listbox e in base al valore scelto nella listbox variano altre due textbox.

PS. L'ho fatto da codice e non da XAML perchè non voglio che la cosa sia immediata all'apertura della form.
__________________
CPU: Amd Phenom II 955--MB: Gigabyte GA-890GPA-UD3H--RAM:4 GB DDR3--SV: ATI Radeon HD 5770--HD: Western Digital Caviar Black 500 gb--ALI:: Corsair 650w--MONITOR: SyncMaster P2270--ROUTER: Netgear DG834G--SO: Win 7 Professional 64 bit
mto89 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
PC e smartphone potrebbero diventare pi&...
Amazon top 12 offerte, 4 novità e...
Il braccialetto a ultrasuoni del MIT ric...
Nessuno voleva più occuparsene: l...
iPhone 18, più RAM per sfruttare ...
WhatsApp introduce il supporto al multi-...
Una GeForce RTX 5060 Ti a 326,90€: il pr...
Anthropic segna il precedente: l’intelli...
Google AI Plus cambia: ora costa di meno...
Pebble Round 2 slitta a luglio: ecco il ...
Kingdom Hearts 4, un nuovo trailer di ga...
Tornano in offerta su Amazon 4 SUP / pad...
Con coupon su Amazon, oggi torna a 107,9...
'Dobbiamo ripensare tutto': brutte notiz...
Mobi Fold e Spotligth 2: da Logitech un ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:56.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v