C# 更改datagrid.datacontext时消失列
当我更改DataGrid时,我在查看DataGrid(DataGrid就是其中之一)时遇到一些问题 我从sqlite DB提取信息并将其放入DataTable,然后清除DataGrid列并将新的DataTable数据放入DataGrid,代码如下:C# 更改datagrid.datacontext时消失列,c#,wpf,sqlite,C#,Wpf,Sqlite,当我更改DataGrid时,我在查看DataGrid(DataGrid就是其中之一)时遇到一些问题 我从sqlite DB提取信息并将其放入DataTable,然后清除DataGrid列并将新的DataTable数据放入DataGrid,代码如下: sqliteDataAdapter = new SQLiteDataAdapter(query, sqliteConnection); if (tableFromDB == null) tableFromDB = new DataTable();
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中)。当我注释行: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();
删除列的原因。注释以下行时会发生什么:dataGrid.Columns.Clear();