Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
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
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


HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
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...
Samsung testa una batteria da 20.000 mAh...
Xbox non reintrodurrà i giochi in...
Profili social dei defunti creati automa...
L'IA accelera il lavoro, ma serve ancora...
Insta360 lancia Quick Reader: 512GB di p...
Notebook: prezzi verso un incremento del...
Il Politecnico di Milano va oltre i tran...
Questo nuovo driver integrato in Windows...
Offerte di Primavera Amazon: scope elett...
PS5 Slim con SSD da 1TB e NBA 2K26 inclu...
Nexperia, tra Olanda e Cina divampa anco...
AirPods in forte sconto su Amazon: AirPo...
TV 55'' con Ambilight a 279€ o un enorme...
Yann LeCun lancia AMI Labs: raccolti 1,0...
ECOVACS sconta fino al 50% i robot per l...
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: 14:27.


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