仅更改datagrid中的数据表列名称

问题描述 投票:1回答:1

我知道如何更改数据表中的列名称。我问的是如何更改显示的(如在DataGrid中)名称。我回顾用户点击的数据表,因此列名需要保持SQL交互。我只想更改WPF格式DataGrid中显示的名称。

现在我有:

SomeSQLiteDataAdapter.Fill(SomeDataTable);
SomeDataGrid.ItemSource = SomeDataTable.DefaultView;

我是否需要制作一个重复的数据表才能显示,并在那里更改它们?

编辑:

谢谢@Mark!我最终得到了这个:

void MainDataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
switch(e.column.header.ToString())
{
  case "ColumnName1":
  {
  e.header = "NewName1";
  break;
  }
  case "ColumnName2":
  {
  e.header = "NewName2";
  break;
  }
}
c# wpf sqlite
1个回答
0
投票

我假设您正在为DataGrid自动生成列,因为如果不是,那么您需要做的就是在向网格添加显式列时设置.Header属性。

对于自动生成的列,请挂钩AutoGeneratedColumns事件,该事件在自动生成网格的所有列之后触发:

<DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="55,46,0,0" VerticalAlignment="Top" Height="149" Width="262" AutoGeneratedColumns="DataGrid_AutoGeneratedColunns"/>

然后,在事件处理程序中,将列名设置为您想要的名称:

private void DataGrid_AutoGeneratedColunns(object sender, EventArgs e)
{
  if (dataGrid.Columns.Count > 0)
  {
    dataGrid.Columns.Where(a => a.Header.ToString() == "query column name").First().Header = "desired display name";
  }
}

需要进行零计数检查,因为每次网格自动生成列时都会触发事件,有时可能为零列。

© www.soinside.com 2019 - 2024. All rights reserved.