2013-12-14 45 views
1

如何將枚舉值綁定到組合框並使用Linq填充空字段?我曾嘗試:如何將枚舉綁定到具有空字段的組合框C#

public static List<object> GetDataSource(Type type, bool fillEmptyField = false) 
{ 
    if (type.IsEnum) 
    { 
     if (fillEmptyField) 
     { 
      var data = Enum.GetValues(type) 
         .Cast<Enum>() 
         .Select(E => new { Key = (object)Convert.ToInt16(E), Value = ToolsHelper.GetEnumDescription(E) }) 
         .ToList<object>(); 

      return data; 
     } 
     else 
     { 
      return Enum.GetValues(type) 
       .Cast<Enum>() 
       .Select(E => new { Key = Convert.ToInt16(E), Value = ToolsHelper.GetEnumDescription(E) }) 
       .ToList<object>(); 
      } 
    } 

    return null; 
} 

但我不知道該如何向空字段插入到組合框,但關鍵是零和值是一個空字符串。任何人都可以解釋我錯過了什麼?

回答

2

試試這個,

public static List<object> GetDataSource(Type type, bool fillEmptyField = false) 
    { 
     if (type.IsEnum) 
     { 
      var data = Enum.GetValues(type).Cast<Enum>() 
         .Select(E => new { Key = (object)Convert.ToInt16(E), Value = ToolsHelper.GetEnumDescription(E) }) 
         .ToList<object>(); 

      var emptyObject = new {Key = default(object), Value = ""}; 

      if (fillEmptyField) 
      { 
       data.Insert(0, emptyObject); // insert the empty field into the combobox 
      } 
      return data; 
     } 
     return null; 
    } 
+1

這似乎是一個可行的辦法給我,但問題問的'Key'是'null',所以它應該是'鍵=(對象)null'或' Key = default(object)'而不是'Key = -1'。 – hvd

+0

@ hvd,很好的接收。我會把默認(對象)。謝謝 –

+0

@PrasadKanaparthi:這是工作。謝謝 :) – Blishton

相關問題