当我更改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中)。
答案 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();