在 DataGrid 中将查询中的两列合并为一列(WPF、C#)

本文关键字:一列 WPF 合并 两列 查询 DataGrid | 更新日期: 2023-09-27 18:32:07

我想合并 Access 数据库中的两列。 一个是Street Name,另一个是Direction. 因此,如果街道名称的值为 Diamond St .和方向有W,我希望能够把它组合成W Diamon St。 有没有一种快速简便的方法可以做到这一点? 我想在我做我计划的事情之前我会问一下,这涉及将两个字符串组合在一个列表中,然后将列绑定到该列表。

在查询中有什么可以做的吗? 例如,我的查询是

OleDbDataAdapter da = new OleDbDataAdapter("SELECT Date, Time, Street, Direction FROM Event", con);

我无法弄清楚如何在该查询中执行Street, Direction AS StreetDir,因为我有多个项目。

在 DataGrid 中将查询中的两列合并为一列(WPF、C#)

如果数据仅用于显示,则可以连接 sql 字符串中的两列:

Select rtrim(ltrim(isnull(column1,'') + ' ' + isnull(column2,''))) as columnname from table

编辑:

对于访问 SQL:

SELECT Date, Time, 
Trim(iif(isnull(Street),'',Street) & ' ' & iif(isnull(direction),'',direction)) 
as StreetDir FROM Event

两个选项:

  1. 编写一个转换器以返回您想要的任何值。 即在绑定网格列时,创建网格模板列并在单元格模板中,您可以执行

      <DataGridTemplateColumn  HeaderStyle="{StaticResource ColumnHeaderStyle}">
           <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Converter={StaticResource MyConverter}}"  />
                  </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
    

在转换器的转换方法中,您可以返回两个属性的组合值

2.在模型中创建一个计算属性,以组合两个字符串属性并将列绑定到该属性。