2010-10-14 11 views
5

मेरे पास सिल्वरलाइट (WP7) प्रोजेक्ट है और एक सूची बॉक्स में एक enum बांधना चाहते हैं। यह कक्षा मूल्य पुस्तकालय में बैठे कस्टम मूल्यों के साथ एक enum है। मैं यह कैसे करु?मैं अपने सूची बॉक्स में एक enum कैसे बांध सकता हूँ?

+1

[WPF में कोई ComboBox के लिए एक enum संपत्ति databinding] (http://stackoverflow.com/questions/58743/databinding-an-enum-property-to-a-combobox-in-wpf) – Andrey

उत्तर

11

सिल्वरलाइट (WP7) में, Enum.GetNames() विधि उपलब्ध नहीं है। आप नीचे दिए गए

public class Enum<T> 
{ 
    public static IEnumerable<string> GetNames() 
    { 
     var type = typeof(T); 
     if (!type.IsEnum) 
      throw new ArgumentException("Type '" + type.Name + "' is not an enum"); 

     return (
      from field in type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static) 
      where field.IsLiteral 
      select field.Name).ToList<string>(); 
    } 
} 

स्थिर विधि होगा रिटर्न गणनीय स्ट्रिंग संग्रह का उपयोग कर सकते हैं। आप इसे किसी सूचीबॉक्स के आइटम्ससोर्स से जोड़ सकते हैं। जैसा

this.listBox1.ItemSource = Enum<Colors>.GetNames(); 
+0

तब के संभावित डुप्लिकेट , अगला सवाल यह है कि, आप बाध्यकारी के साथ कैसे निर्दिष्ट करते हैं, चयनित एनम मान को व्यूमोडेल में किसी संपत्ति पर वापस लाया जाता है? मैं जवाब के लिए चारों ओर देख रहा हूं, लेकिन कोई संसाधन नहीं मिला, किसी भी दिशा बिंदु की सराहना की जा रही है। धन्यवाद। – K2so

+1

@ K2so आपके पास 'ListBox' की' चुनीItem' संपत्ति 'से जुड़े दृश्य मॉडल में एक संपत्ति हो सकती है। निम्नलिखित नमूना जांचें जो आपकी मदद कर सके। https://sites.google.com/site/html5tutorials/BindingEnum.zip –

+0

अगर मैं इस कोड को उधार लेता हूं और आपके PhoneyTools प्रोजेक्ट में आपको विशेषता देता हूं तो लोग इसका उपयोग कर सकते हैं? http://phoney.codeplex.com? –

-1

एक सूची (या समान) को enum कन्वर्ट - के रूप में प्रति How do I convert an enum to a list in C#?

तो परिवर्तित सूची के लिए बाध्य।

संबंधित मुद्दे

 संबंधित मुद्दे