WPF Datagrid列计数为0

时间:2015-05-16 18:33:43

标签: wpf wpfdatagrid

 *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列值。 我得到的错误是:"索引超出边界" 找不到我想要的东西

请帮忙!提前致谢

1 个答案:

答案 0 :(得分:2)

如果您使用AutoGeneratedColumn,则在设置Columns后不会立即创建ItemSourceDataGrid有2个此事件

1)如果您希望在创建所有列时抓住,请使用AutoGeneratedColumns事件

  

完成所有列的自动生成时发生。   ...   每次DataGrid尝试生成列时,都会引发AutoGeneratedColumns事件。例如,当DataGrid初始化,AutoGenerateColumns设置为true或ItemsSource已更改时,即使ItemsSource为null,也会引发AutoGeneratedColumns。

2)如果您想为每个自动生成的列创建时,请使用AutoGeneratingColumn事件

  

自动生成单个列时发生。   ...   您可以更改或取消在AutoGeneratingColumn事件处理程序中创建的列。