*string connStr = ConfigValues.connectionString;
string query = "select * from table";
using (OdbcConnection conn = new OdbcConnection(connStr))
{
using (OdbcDataAdapter adapter = new OdbcDataAdapter(query, conn))
{
ds_sc = new DataSet();
adapter.Fill(ds_sc);
}
}
table_sc = ds_sc.Tables[0];
datagrid.ItemsSource = table_sc.DefaultView;
MessageBox.Show("count=" + dgvScripture.Columns.Count().ToString());
datagrid.Columns[1].Visibility = Visibility.Hidden;**
此WPF数据网格有3列。 datagrid列计数为零,我无法隐藏列[1]。 我需要稍后在代码中检索第1列值。 我得到的错误是:"索引超出边界" 找不到我想要的东西
请帮忙!提前致谢
答案 0 :(得分:2)
如果您使用AutoGeneratedColumn
,则在设置Columns
后不会立即创建ItemSource
。 DataGrid
有2个此事件
1)如果您希望在创建所有列时抓住,请使用AutoGeneratedColumns
事件
完成所有列的自动生成时发生。 ... 每次DataGrid尝试生成列时,都会引发AutoGeneratedColumns事件。例如,当DataGrid初始化,AutoGenerateColumns设置为true或ItemsSource已更改时,即使ItemsSource为null,也会引发AutoGeneratedColumns。
2)如果您想为每个自动生成的列创建时,请使用AutoGeneratingColumn
事件
自动生成单个列时发生。 ... 您可以更改或取消在AutoGeneratingColumn事件处理程序中创建的列。