我知道如何更改数据表中的列名称。我问的是如何更改显示的(如在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;
}
}
我假设您正在为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";
}
}
需要进行零计数检查,因为每次网格自动生成列时都会触发事件,有时可能为零列。