【问题标题】:Datagrid Binding with two tablesDatagrid 绑定两个表
【发布时间】:2009-08-23 14:14:19
【问题描述】:

请帮忙。

我有两个关系表,即 Employee 和 EmployeePosition。我正在尝试将两个表绑定到 xmal 文件上的一个数据网格中不使用 LINQ 将这两个表从后面的 c# 代码中加入一个集合。我该怎么做? 下面的示例代码和表格

员工 员工ID 名 姓 职位ID

员工职位 职位编号 标题

我的例外结果是:

EmployeeID   FirstName   LastName  Title

Xaml 文件

<DataGrid x:Name="DataGrid">
  <DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"/>
  <DataGridTextColumn Header="Last Name" Binding="{Binding LastName}"/>            
  <DataGridTextColumn Header="Title" Binding="{Binding Title}"/>
</DataGrid>

C# 代码

var employee = from e in _db.Employees
               select e;
this.DataGrid.ItemsSource = employee;

请帮忙 帕特里克

【问题讨论】:

标签: wpf data-binding datagrid


【解决方案1】:

最简单的方法是根据从两个表中选择值的查询创建一个数据表,例如:

SELECT
    Employee.EmployeeID,
    Employee.FirstName,
    EmployeePosition.Title
FROM
    Employee
LEFT OUTER JOIN
    EmployeePosition
ON
    Employee.PositionID = EmployeePosition.PositionID

如果您使用数据集设计器,您可以从工具箱中添加新的表适配器:

这可能需要一点时间,但会出现表适配器配置向导。选择您的数据库并按照步骤操作,直到您可以添加查询:

然后按照向导中的其余步骤操作。

然后,您将拥有一个可用于绑定到数据网格的数据表。

【讨论】:

  • 谢谢 free-dom 但我想绑定 xmal 文件上的 Title 字段而不加入代码后面的表格。帕特里克
  • 不幸的是,DataGrid 只能有一个 DataSource 对象,因此在某种程度上必须有一些对象将两者连接在一起。如果您不想创建一个将两者结合在一起的新 DataTable,那么您可以提供一个代理类来获取您正在寻找的数据,并改为绑定到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
相关资源
最近更新 更多