datagrid.datacontext更改时消失列

时间:2012-02-15 11:15:42

标签: c# wpf sqlite

当我更改dataContext时,我在查看DataGrid(DataGrid是一个)时遇到了一些问题。

我从sqlite DB中提取信息并将其放入DataTable然后我清除DataGrid列并将新的DataTable数据放入DataGrid,代码在这里:

sqliteDataAdapter = new SQLiteDataAdapter(query, sqliteConnection);

if (tableFromDB == null)
tableFromDB = new DataTable();

tableFromDB.Reset();

sqliteDataAdapter.Fill(tableFromDB);

dataGrid.Columns.Clear();
dataGrid.DataContext = tableFromDB;

它有一次工作,当我从DB中选择其他信息并重复此代码时,我有数据(我在DataTable中看到它),但是列数= 0(在DataGrid中)。

1 个答案:

答案 0 :(得分:0)

当我评论line:dataGrid.Columns.Clear();我有一个例外...但我解决了我的问题。在dataGrid.Columns.Clear()之后;我做到了:

foreach (DataColumn col in tableFromDB.Columns)
{
   dataGrid.Columns.Add(
     new DataGridTextColumn
     {
        Header = col.ColumnName,
        Binding = new Binding(string.Format("[{0}]", col.ColumnName))
     });
}

dataGrid.ItemsSource = tableFromDB.Rows;
dataGrid.Items.Refresh();