一般在WPF使用DataGrid时,在Xaml页面定义各个列头和绑定数据源。
从数据库读取的数据DataTable也可以直接绑定DataGrid。
1、在Xaml拖一个DataGrid。
2、得到DataTable
声明DataTable dt_Edit = new DataTable();
数据库读取:
string ConStr = MainWindow.FESIM_DBPath;
string SqlStr = "select * from " + TableName + OrderText + ";";
OleDbConnection AccessCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " + ConStr + ";"); //连接指定数据库
OleDbDataAdapter AccessDa = new OleDbDataAdapter(SqlStr, AccessCon);
AccessDa.Fill(dt_Edit);
3、绑定 dataGrid1.ItemsSource = dt_Edit.DefaultView;
4、这时列头是数据库读出的原始列名,如果要做列名修改比如由英文改成中文,可在3之前进行列头改变
设置列名方法举例:
// 设置数据表的列名
public void Change_DataGrid_ColumnName_Ex(string TableName, DataTable dgv)
{
switch (TableName)
{
case "airport":
dgv.Columns[0].ColumnName = "机场标识";
dgv.Columns[1].ColumnName = "机场参考点经度";
dgv.Columns[2].ColumnName = "机场参考点纬度";
dgv.Columns[3].ColumnName = "机场海拔高度";
break;
case "runway":
dgv.Columns[0].ColumnName = "跑道标识";
dgv.Columns[1].ColumnName = "机场标识";
dgv.Columns[2].ColumnName = "跑道入口经度";
break;
}
}
注意:DataGrid不在Xaml中设置列,而使用DataTable作为数据源自动绑定生成列的,要在Xaml中设置:
AutoGenerateColumns="True"