मैंअंकन के लिए उपयोगकर्ता मित्रतापूर्ण नाम कैसे हैं?
Enum Complexity
{
NotSoComplex,
LittleComplex,
Complex,
VeryComplex
}
की तरह एक गणना है और मैं एक ड्रॉपडाउन सूची में इसका उपयोग करना चाहते हैं, लेकिन सूची में इस तरह के कैमल नाम देखने के लिए नहीं करना चाहते हैं (उपयोगकर्ताओं के लिए वास्तव में अजीब लग रहा है)। इसके बजाय मैं सामान्य शब्दों में है, ऐसा नहीं है जटिल लिटिल जटिल (आदि)
भी तरह चाहते हैं, अपने आवेदन बहु लैंग और मैं उन तार स्थानीय प्रदर्शित करने के लिए सक्षम होने के लिए चाहते हैं, और मैं एक का उपयोग करें सहायक, अनुवादहेल्पर (स्ट्रिंग स्ट्रिड) जो मुझे स्ट्रिंग आईडी के लिए स्थानीय संस्करण प्रदान करता है।
मैं एक काम कर समाधान है, लेकिन बहुत ही सुंदर नहीं: मैं एक सदस्य जटिलता और ToString() ओवरराइट, नीचे (सरलीकृत कोड) की तरह
public class ComplexityHelper
{
public ComplexityHelper(Complexity c, string desc)
{ m_complex = c; m_desc=desc; }
public Complexity Complexity { get { ... } set {...} }
public override ToString() { return m_desc; }
//Then a static field like this
private static List<Complexity> m_cxList = null;
// and method that returns the status lists to bind to DataSource of lists
public static List<ComplexityHelper> GetComplexities()
{
if (m_cxList == null)
{
string[] list = TranslationHelper.GetTranslation("item_Complexities").Split(',');
Array listVal = Enum.GetValues(typeof(Complexities));
if (list.Length != listVal.Length)
throw new Exception("Invalid Complexities translations (item_Complexities)");
m_cxList = new List<Complexity>();
for (int i = 0; i < list.Length; i++)
{
Complexity cx = (ComplexitylistVal.GetValue(i);
ComplexityHelper ch = new ComplexityHelper(cx, list[i]);
m_cxList.Add(ch);
}
}
return m_cxList;
}
}
जबकि व्यावहारिक के साथ enum के लिए एक सहायक वर्ग बनाने के लिए, , मैं इससे खुश नहीं हूं, क्योंकि मुझे इसे विभिन्न enums के लिए समान रूप से कोड करना होगा, मुझे पिकलिस्ट में उपयोग करने की आवश्यकता है।
क्या किसी के पास एक सरल या अधिक सामान्य समाधान के लिए कोई सुझाव है?
धन्यवाद Bogdan
देखें –