Hello
Im relative new to WPF. Im trying to implement a custom ComboBox, a base class for ComboBoxes which display enum-members. Derived classes should easily be able to set the text which represents the enum values.
This is what I did so far (more or less, I removed the irrelevant code):
public class EnumComboBox<T> : System.Windows.Controls.ComboBox
where T : struct
{
protected virtual string FormatEnum(T value)
{
return "Test " + value.ToString();
}
protected override void PrepareContainerForItemOverride(System.Windows.DependencyObject element, object item)
{
base.PrepareContainerForItemOverride(element, item);
if (!(item is T))
return;
T value = (T)item;
string text = this.FormatEnum(value);
element.SetCurrentValue(ContentControl.ContentProperty, text);
}
}This displays the string returned by FormatEnum for each enum value in the dropdownlist of the ComboBox as I want it to. The problem is that I cant figure out how to specify how the selected item is displayed. Can somebody please give me a hint how to do this?