У меня есть сетка данных о том, что его источник данных доступен для данных, я пытаюсь свернуть некоторые столбцы, это работает только при нажатии кнопки.
Это не работает:
Когда я вызываю функцию загрузки, он загружает данные в myDataTable
из базы данных, но не сворачивает столбец из таблицы данных
void Load()
{
string query = "SELECT * FROM MyTable";
myDataTable = Query(); // <--- the Query function returns datatable
My_DataGrid.ItemsSource = myDataTable.DefaultView;
CollapseDGColumn("SomeCulumnName", My_DataGrid);
}
// Gets datagrid and column name and collapse the column
void CollapseDGColumn(string columnToHide, DataGrid dg)
{
foreach (var col in dg.Columns) // <-- dg.Columns count=0
if (col.Header.ToString().Trim() == columnToHide.Trim())
col.Visibility = Visibility.Collapsed;
}
Когда я вызываю функцию CollapseDGColumn, он говорит, что dg.Columns
число равно 0
, даже если в myDataTable
.
этот код работает:
Если я вызову эту функцию загрузки:
void Load()
{
string query = "SELECT * FROM MyTable";
myDataTable = Query(); // <--- the Query function returns datatable
My_DataGrid.ItemsSource = myDataTable.DefaultView;
}
И после того, как я нажму кнопку:
void Collapse_Btn(object sender, RoutedEventArgs e)
{
CollapseDGColumn("SomeCulumnName", My_DataGrid);
}
Как сделать так, чтобы опция 1 работала, то есть без кнопки?