0

列に句読点がある場合、データの表示を拒否する DataGrid があります。結果のデータを DataTable に配置する次の SQL ステートメントがあります。

string statement = "SELECT TOP 200 [Test] AS [Primary key for Department records.] FROM [dbo].[Children]";

using (SqlDataAdapter adapter = new SqlDataAdapter(statement, connection))
                        {
                            adapter.Fill(dtResults);
                        }

エイリアスの.文字が原因で、DataGrid は DataTable に含まれる情報を表示しません。私は試行錯誤を通じてこれを発見しました。そのような列でデータを表示するようにデータグリッドを取得するにはどうすればよいですか?

これはバインディング コードです。

dgResults.DataContext = myDataTable.AsDataView();
dgResults.AutoGeneratingColumn += new EventHandler<DataGridAutoGeneratingColumnEventArgs>(dataGrid_AutoGeneratingColumn);
dgResults.Visibility = Visibility.Visible;

private void dataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
   //Sets the DataGrid's headers to be TextBlocks, which solves a problem whereby underscore characters in the header are ignored.
   TextBlock block = new TextBlock();
   block.Text = e.Column.Header.ToString();
   e.Column.Header = block;
}
4

1 に答える 1