![](/img/trans.png)
[英]How to change values of column of DataTable and show only in DataGrid not updating actual table of database
[英]Change only datatable column name in datagrid
我知道如何更改數據表中的列名。 我在問如何僅更改顯示的名稱(如在DataGrid
)。 我會參考數據表來進行用戶點擊,因此需要保留列名以進行SQL交互。 我只想更改以WPF形式DataGrid
顯示的名稱。
現在我有:
SomeSQLiteDataAdapter.Fill(SomeDataTable);
SomeDataGrid.ItemSource = SomeDataTable.DefaultView;
我是否需要制作一個重復的數據表以僅用於顯示,並在那里進行更改?
編輯:
謝謝@馬克! 我結束了這個:
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";
}
}
需要進行零計數檢查,因為每次網格自動生成列(有時可能是零列)時都會觸發該事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.