I've followed the advice given here : How to bind Enum to combobox with empty field in C# but it gave me some unusable content:

which is not what I would like to see... Here's the code I used to bind:
comboBox2.DataSource = GetDataSource(typeof (MessageLevel), true); And here's the background:
public enum MessageLevel { [Description("Information")] Information, [Description("Warning")] Warning, [Description("Error")] Error } ---- public static string GetEnumDescription(string value) { Type type = typeof(MessageLevel); var name = Enum.GetNames(type).Where(f => f.Equals(value, StringComparison.CurrentCultureIgnoreCase)).Select(d => d).FirstOrDefault(); if (name == null) { return string.Empty; } var field = type.GetField(name); var customAttribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false); return customAttribute.Length > 0 ? ((DescriptionAttribute)customAttribute[0]).Description : name; } 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 = GetEnumDescription(E.ToString()) }) .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; } How can I make a correct binding and adding one empty entry?
DisplayMemberPath="Value"andSelectedValuePath="Key"WPF.