我有三张桌子。员工,ClientEmp和客户。
ClientEmp具有Employee(EmployeeID)和Client(ClientID)的ForeignKey
。
到目前为止,我已经能够基于EF
客户端(使用selected
)将对ClientEmp的更改保存在数据库中(使用ForeignKey
)。但是我必须在textbox
中手动键入EmployeeID textbox
才能匹配要保存的数据。
显然,如果用户不知道将EmployeeID FK输入到list
的位置,这也不是很友好。
因此,是否有一种方法可以使用Employee表中的combo box
显示Employee Firstname的,然后将其保存到数据库中?
我已经尝试过了,但是似乎没有用。
<ComboBox Grid.Column="1" Grid.Row="1" Name="cbEmployeeName"
ItemsSource="{Binding Source={StaticResource Employee}}"
DisplayMemberPath="FirstName"
SelectedValuePath="EmployeeID">
</ComboBox>
我也曾尝试使用This link和This link here来提供帮助,但无济于事。我究竟做错了什么?
任何帮助将非常感激 :)。
最佳答案
最后,我设法在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中,创建了此方法来获取雇员列表;
public IEnumerable<DataObjects.Employee> GetEmp()
{
return context.Employees;
}