在组合框中显示外键约束的名称

时间:2013-05-07 10:14:45

标签: c# wpf entity-framework data-binding combobox

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

非常感谢任何帮助:)。

1 个答案:

答案 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;
}