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