2012-02-15 40 views
0

我在查看DataGrid(DataGrid是一个)时遇到一些问题,当我更改它的dataContext时。当datagrid.datacontext发生变化时消失的列

我从源码数据库中提取信息,并把它放到DataTable的话,我清楚的DataGrid列,并把新的DataTable数据到数据网格,代码是在这里:

sqliteDataAdapter = new SQLiteDataAdapter(query, sqliteConnection); 

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

tableFromDB.Reset(); 

sqliteDataAdapter.Fill(tableFromDB); 

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

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

+0

为什么你要删除列。当您评论以下行时会发生什么:dataGrid.Columns.Clear(); – Amit 2012-02-15 11:53:58

回答

0

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