我ComboBox
在 XAML 中有一个:
<ComboBox x:Name="Form1Combobox" Width="150" IsSynchronizedWithCurrentItem="True" SelectedValue="{Binding Dept}" ItemsSource="{Binding Source={StaticResource ResourceKey=Depts}}"/>
我的静态资源正在使用一个枚举值ObjectDataProvider
填充:ComboBox
public enum Department
{
Leadership,
Maintenance,
Salaried,
Commission
}
我有一个ObservableCollection
员工,我将他们的 Dept 属性设置为某个值(例如,Dept = Department.Leadership
)。员工类将INotifyPropertyChange
, 用于其他事物,包括姓名。ComboBox
填充正确,但未设置其初始值。
我的问题是,如何将 的 设置SelectedValue
为ComboBox
员工的适当属性?
编辑:这是我的可观察集合(片段)。
ObservableCollection<Employee> emps = new ObservableCollection<Employee>
{
new Employee{Name = "Exam Pell", Title = "Manager", Phone = "(801) 555-2677", Email = "examPell@co.co", isActive = true, Dept = Department.Commission},
};
这是我的静态资源:
<ObjectDataProvider x:Key="Depts" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="en:department+Department"></x:Type>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
我实际上已经注意到,每当我尝试设置 SelectedValue 或 SelectedItem 时,组合框都会变成红色(我有一个DataGridComboBoxColumn
也与此相关的,但有一个ItemsSource
)。此外,我有一个ListBox
也显示部门的 - 但是,这个显示正确,但即使我更改ComboBox
任何员工的选择也不会更新。