其实,如果我必须这样做,我就已经建立了一个ObservableCollection<EmployeeType>
以前的绑定(用于为例在您的视图模型的构造,使用Enum.GetNames(typeof(EmployeeType))
,然后遍历每个值重新分析他们作为EmployeeType
类型。
一旦您的收藏成立,你就必须将其绑定到你的ComboBox
,然后选择项目的时候,你应该retreive一种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; }
}
}
然后将视图模型设置为d您的组合框结合EmployeeTypes
视图的ATA上下文,并且:
<ComboBox ItemsSource="{Binding EmployeeTypes}" />
选定应返回EmployeeType
类型的对象。
PS:抱歉代码拼写错误,我没有在我身边的任何C#编辑器现在;)
这将抛出一个错误......你需要使用'Enum.Parse' – balexandre 2011-05-26 13:45:51
没有它赢得“T。我建立了一个测试项目,在我发布之前进行确认。 – Tim 2011-05-26 13:49:45