2010-05-24 33 views
10

Ho vincolato un elenco di enum a una casella combinata. Ora voglio ottenere il SelectedItem restituire l'enum, che attualmente lo restituisce come tipo object. Come posso convertire questo oggetto nel mio enum?Converti oggetto in enum C#

mio quadro è Silverlight su Windows-phone-7

+0

Hai provato a digitare? –

risposta

17

Fusioni direttamente:

MyEnum selected = (MyEnum)cboCombo.SelectedItem; 

Notare che non è possibile utilizzare il getto as in questo caso, poiché un Enum è un tipo di valore.

+0

wow, questo funziona ora. Per qualche ragione, il compilatore mi stava dicendo che 'MyEnum' viene usato come variabile in quella dichiarazione esatta. –

+0

@Jon Seigel buona chiamata sul commento del cast "as". Visual Studio fa "unboxing" dietro le quinte qui? – gonzobrains

4

Hai provato questo ??

YourEnum abc = (YourEnum) Enum.Parse(typeof(YourEnum), yourObject.ToString()); 
+1

Potrebbe funzionare con una proprietà stringa, ma non con 'SelectedItem'. – leppie

+0

@leppie: ho pensato, per qualche ragione, che il typecasting non funzioni per OP, quindi può provare questo trucco. – viky