我有三张 table 。 Employee、ClientEmp 和 Client。
ClientEmp 具有 Employee (EmployeeID) 和 Client(ClientID) 的 ForeignKey
。
到目前为止,我能够根据所选
客户端将更改保存到我的数据库中的ClientEmp(使用EF
)。但我必须在 textbox
中手动输入 EmployeeID ForeignKey
才能匹配要保存的数据。
显然,如果用户也不知道在 textbox
中输入的 EmployeeID FK 是什么,这对用户来说也不是很友好。
因此,有没有办法使用员工表中的组合框
来显示员工名字的列表
,然后将其保存到数据库中?
我已经尝试过了,但似乎不起作用。
<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;
}
关于c# - 显示组合框中外键约束的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416523/