Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026
Al MWC Qualcomm annuncia una coalizione industriale per lanciare il 6G entro il 2029 e introduce agenti IA per la gestione autonoma della RAN. Ericsson, presente sul palco, conferma la direzione: le reti del futuro saranno IA-native fin dalla progettazione
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso
CHUWI CoreBook Air è un ultraleggero da 1 kg con Ryzen 5 6600H, display 14" 16:10 e 16 GB LPDDR5. Offre buona portabilità, autonomia discreta e costruzione in alluminio, ma storage PCIe 3.0 e RAM saldata limitano l'espandibilità. A 549 euro sfida brand più noti nella stessa fascia di mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-02-2015, 18:06   #1
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
[WPF] Eseguire il BIND di un Enumerativo in una Combobox

Hi,

I have this enum type:
Codice:
        public enum SchedActiveEnum
        {
            [Description("All")]
            All,
            [Description("Y")]
            Y,
            [Description("N")]
            N
        }
Qual è il modo migliore per eseguire il bind in una combobox?

Vorrei visualizzare la description ma ricevere il valore.

Grazie.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2015, 16:03   #2
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Risolto tramite l'utilizzo di un dizionario:

Codice:
private Dictionary<Definition.SchedActiveEnum, string> _schedActive;

public Dictionary<Definition.SchedActiveEnum, string> SchedActive
{
	get
	{
		if (_schedActive == null)
		{
			_schedActive = new Dictionary<Definition.SchedActiveEnum, string>();
			var myList = Enum.GetValues(typeof(Definition.SchedActiveEnum)).Cast<Enum>().Select(value => new
			{
				value,
				(Attribute.GetCustomAttribute(
				value.GetType().GetField(value.ToString()),
				typeof(DescriptionAttribute)) as DescriptionAttribute).Description
			}
			);

			foreach (var item in myList)
			{
				_schedActive.Add((Definition.SchedActiveEnum)item.value, item.Description);
			}
		}
		return _schedActive;
	}
}
nello xaml ho eseguito il Bind:
Codice:
<ComboBox Name="cmbActive"
		  DataContext="{StaticResource DomainDataViewModel}"  
		  ItemsSource="{Binding SchedActive}" 
		  DisplayMemberPath="Value" 
		  SelectedValuePath="Key" 
		  Width="50">
dove DataContext è il mio ViewModel.

L'unico problema: dalla cambo ricevo il valore della Description e non la Key del dizionario, come mai?

Grazie.

Ultima modifica di robertino_salemi : 20-02-2015 alle 16:43.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2015, 15:17   #3
msangi
Member
 
Iscritto dal: Sep 2011
Città: Londra
Messaggi: 167
Anziché usare un dizionario, prova a dare un'occhiata ai ValueConverter. Fanno esattamente quello che serve a te, permettendoti di passare alla ComboBox l'oggetto che del tuo dominio e di avere un metodo per effettuare la conversione nella sua rappresentazione testuale.

https://social.msdn.microsoft.com/Fo...alue?forum=wpf
__________________
Twitter - Blog
msangi è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2015, 10:10   #4
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Quote:
Originariamente inviato da msangi Guarda i messaggi
Anziché usare un dizionario, prova a dare un'occhiata ai ValueConverter. Fanno esattamente quello che serve a te, permettendoti di passare alla ComboBox l'oggetto che del tuo dominio e di avere un metodo per effettuare la conversione nella sua rappresentazione testuale.

https://social.msdn.microsoft.com/Fo...alue?forum=wpf
Effettivamente avevo pensato a questa soluzione, poi però ho risolto sempre con il dizionario:

Codice:
private Dictionary<Definition.SchedActiveEnum, string> _schedActive;

public Dictionary<Definition.SchedActiveEnum, string> SchedActive
{
	get
	{
		if (_schedActive == null)
		{
			_schedActive = new Dictionary<Definition.SchedActiveEnum, string>();

			//Permette di visualizzare la Description dell'Enum 
			var myList = Enum.GetValues(typeof(Definition.SchedActiveEnum)).Cast<Enum>().Select(value => new
			{
				value,
				(Attribute.GetCustomAttribute(
				value.GetType().GetField(value.ToString()),
				typeof(DescriptionAttribute)) as DescriptionAttribute).Description
			}
			);

			foreach (var item in myList)
			{
				_schedActive.Add((Definition.SchedActiveEnum)item.value, item.Description);
			}

		}
		return _schedActive;
	}
}
nello xaml:

Codice:
<ComboBox Name="cmbActive"
		  DataContext="{StaticResource DomainDataViewModel}"  
		  ItemsSource="{Binding SchedActive}" 
		  DisplayMemberPath="Value" 
		  SelectedValuePath="Key"
		  Width="50">
</ComboBox>
Grazie.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Roborock Saros 20: il robot preciso e molto sottile Roborock Saros 20: il robot preciso e molto sott...
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
MacBook Neo: nessuna sorpresa nei primi ...
La serie POCO X8 Pro è pronta al ...
Smartphone: 2026 difficile per il mercat...
Star Wars: Knights of the Old Republic R...
Huang, NVIDIA: OpenClaw ha realizzato in...
Annunciano il recupero di 4,8 milioni di...
Oggi degli ottimi auricolari Sony con ca...
Muffa in casa? Questo deumidificatore da...
Sonos Era 100: il punto d'ingresso per u...
"Non stiamo sostituendo nessuno con...
Tutti i robot in offerta ora: prezzi bas...
Fra 3 giorni, a mezzanotte, Amazon attiv...
Il principale limite del MacBook Neo &eg...
899€ in tutti i colori, crolla il prezzo...
Sempre più pubblicità su Y...
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: 16:49.


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