На самом деле, если бы мне пришлось это сделать, я бы построил ObservableCollection<EmployeeType>
ранее для привязки (например, в конструкторе вашей модели представления, используя Enum.GetNames(typeof(EmployeeType))
, а затем итерируя по каждому значению для их повторного анализа) как EmployeeType
типы.
После того, как вы настроили свою коллекцию, вам просто нужно привязать ее к вашему ComboBox
, а затем, при выборе элемента, вы должны получить тип EmployeeType
, не анализируя его.
public class VieModel
{
private ObservableCollection<EmployeeType> _internal;
public ViewModel()
{
_internal = new ObservableCollection<EmployeeType>();
var tempList = Enum.GetNames(typeof(EmployeeType));
foreach(var val in tempList)
{
EmployeeType et = Enum.Parse(typeof(EmployeeType),val);
internal.Add(et);
}
}
public ObservableCollection<EmployeeType> EmployeeTypes
{
get { return _internal; }
}
}
Затем установите модель представления в качестве контекста данных вашего представления и свяжите ваш комбинированный список с EmployeeTypes
:
<ComboBox ItemsSource="{Binding EmployeeTypes}" />
Выбранный должен возвращать объект типа EmployeeType
.
PS: Извините за ошибки в написании кода, сейчас у меня нет редактора C #;)