Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改datagrid.datacontext时消失列_C#_Wpf_Sqlite - Fatal编程技术网

C# 更改datagrid.datacontext时消失列

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();

当我更改DataGrid时,我在查看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中)。

当我注释行: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();