我有三张桌子。员工,ClientEmp和客户。
ClientEmp具有Employee(EmployeeID)和Client(ClientID)的ForeignKey
。
到目前为止,我可以根据EF
客户端在我的数据库中保存对ClientEmp的更改(使用selected
)。但我必须在ForeignKey
中手动输入EmployeeID textbox
才能匹配要保存的数据。
显然,如果用户不知道EmployeeID FK在textbox
中输入了什么,这对用户不是很友好。
因此,有没有办法使用Employee表中的list
显示combo box
员工名字,然后将其保存到数据库?
我试过这个,但它似乎不起作用。
<ComboBox Grid.Column="1" Grid.Row="1" Name="cbEmployeeName"
ItemsSource="{Binding Source={StaticResource Employee}}"
DisplayMemberPath="FirstName"
SelectedValuePath="EmployeeID">
</ComboBox>
我还尝试使用This link和This link here来帮助但无济于事。我做错了什么?
非常感谢任何帮助:)。
答案 0 :(得分:2)
最后,我设法在WPF Chat room的帮助和Maverik的帮助下弄明白了。
在我的xaml中,我定义了以下内容;
<ResourceDictionary>
<ObjectDataProvider x:Key="Employee"
ObjectType="{x:Type vm:ClientBookKeepingViewModel}"
MethodName="GetEmp">
</ObjectDataProvider>
</ResourceDictionary>
<ComboBox Grid.Column="1" Grid.Row="1" Name="cbEmployeeName"
ItemsSource="{Binding Source={StaticResource Employee}}"
DisplayMemberPath="FirstName"
SelectedValue="{Binding Path=EmployeeID}"
SelectedValuePath="EmployeeID"
/>
并在我的ViewModel中创建此方法以获取Employees列表;
public IEnumerable<DataObjects.Employee> GetEmp()
{
return context.Employees;
}