我有三张桌子。员工,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 linkThis link here来提供帮助,但无济于事。我究竟做错了什么?

任何帮助将非常感激 :)。

最佳答案

最后,我设法在WPF Chat roomMaverik的帮助下弄清楚了。

在我的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;
}

10-08 17:27