从组合框内的外键约束显示名称

本文关键字:约束 显示 组合 | 更新日期: 2023-09-27 18:12:21

我有三个表。Employee, ClientEmp和Client.

ClientEmp具有Employee (EmployeeID)和Client(ClientID)的ForeignKey

到目前为止,我能够在基于selected客户机的数据库(使用EF)中保存对ClientEmp的更改。但是我必须在textbox中手动输入EmployeeID ForeignKey,以便能够匹配保存的数据。

显然,如果用户也不知道在textbox中输入的EmployeeID FK是什么,那么这不是很友好。

因此,是否有一种方法来显示一个list的雇员名字的使用combo box从雇员表,然后将其保存到数据库?

我已经试过了,但是好像行不通。

<ComboBox Grid.Column="1" Grid.Row="1" Name="cbEmployeeName" 
          ItemsSource="{Binding Source={StaticResource Employee}}" 
          DisplayMemberPath="FirstName" 
          SelectedValuePath="EmployeeID">
</ComboBox>

我也试过使用这个链接和这个链接来帮助,但无济于事。我做错了什么?

从组合框内的外键约束显示名称

最后,在WPF聊天室和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;
}