Скрыть столбец из таблицы данных без кнопки - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть сетка данных о том, что его источник данных доступен для данных, я пытаюсь свернуть некоторые столбцы, это работает только при нажатии кнопки.

Это не работает:

Когда я вызываю функцию загрузки, он загружает данные в 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 работала, то есть без кнопки?

1 Ответ

0 голосов
/ 24 декабря 2018

Добавить загруженное событие как: <DataGrid Loaded=“myDg_Loaded” />

В коде позади:

void myDg_Loaded(object sender, RoutedEventArgs e)
{ 
     //collapse columns here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...