c# - 显示组合框中外键约束的名称

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

我有三张 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 linkThis 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/

相关文章:

c# - 在相机 View 中偏移 3D 对象

c# - 如何为要设置动画的属性上的数据更改触发的元素设置动画

c# - 如何从 EF 4 中的相关表中删除行?

entity-framework - 您的启动项目 'project' 未引用 Microsoft.EntityFrameworkCore.Design

c# - 单击“取消”后返回到包含搜索结果的上一页

c# - 重定向网址不正确

c# - 反序列化为 NameValueCollection 时 Json.NET 6.0.7 中的 ArgumentNullException

c# - 我可以在触摸屏上渲染带有按钮的 WPF 窗口并读取输入吗?建议?

sql-server - Windows 应用程序 (WPF) 的独立数据库

c# - 将 UserId 分配给外键 = null