其實,如果我必須這樣做,我就已經建立了一個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