WPF 数据库获得的数据DataTable绑定到DataGrid进行界面显示,自动生成列头。

一般在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" 

猜你喜欢

转载自blog.csdn.net/glmushroom/article/details/81076180