我有datagrid,他的itemsource是数据表,我正在尝试折叠一些列,仅在单击按钮时有效。
这不起作用:
当我调用load函数时,它会将数据从数据库加载到myDataTable
,但不会折叠datagrid中的列
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
中有数据。
此代码确实有效:
如果我调用此Load函数:
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 工作,我是说没有按钮?
答案 0 :(得分:0)
添加已加载的事件,例如:<DataGrid Loaded=“myDg_Loaded” />
在后面的代码中:
void myDg_Loaded(object sender, RoutedEventArgs e)
{
//collapse columns here
}