簡體   English   中英

僅更改datagrid中的數據表列名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM