DataGrid如何隐藏自动生成的列?我已经从SQL服务器的DataTable中自动填充了DataGrid。我希望用户能够添加或删除哪些列是可见的。我最初试过这个:publicvoidpopulateTaskTable(DataTabledt){//将整个数据表添加到数据网格dg.DataContext=dt.DefaultView;dg.Columns[0].Visibility=Visibility.Collapsed;}对于相应的xaml(我尝试过使用和不使用AutoGenerateColumns="True"这会因内存违规.所以我做了MessageBox.Show(dg.Columns.Count());来查看是否正在填充该列,它不是,它输出0即使我可以在程序中看到该列。我从以前的stackoverflow中发现问题“自动生成的列未添加到列索引”。然后从这个问题我尝试更新DataGrid以像这样填充列taskTable.UpdateLayout();,或者是将DataGrid的所有列添加到Columns的方法组件?提前致谢。连接AutoGeneratingColumn事件并隐藏其上的列。dataGrid.AutoGeneratingColumn+=dataGrid_AutoGeneratingColumn;voiddataGrid_AutoGeneratingColumn(objectsender,DataGridAutoGeneratingColumnEventArgse){e.Column.Visibility=Visibility.Collapsed;}您可能需要有条件隐藏列表,您可以使用privatevoidDataGrid_OnAutoGeneratingColumn(objectsender,DataGridAutoGeneratingColumnEventArgse){if(e.PropertyName=="YourProperty"){e.Column.Visibility=Visibility.Collapsed;}}或者您可以使用AutoGeneratedColumns事件。生成所有列时将触发它。dataGrid.AutoGeneratedColumns+=DataGrid1_AutoGeneratedColumns;voidDataGrid1_AutoGeneratedColumns(objectsender,EventArgse){intcolumnsCount=DataGrid1.Columns.Count;//您可以在此处访问列。您引用的链接表示自动生成的列未添加到Columns集合中间。我只是注意到自动生成的列确实已添加到集合中。链接到System.Web.UI.WebControls.DataGrid文档的糟糕答案是非常错误的。我的解决方案是使用静态方法,在其中传入一个网格和一个列名列表,如下所示:以上是C#学习教程:如何在DataGrid中隐藏自动生成的列?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——){foreach(columnNames中的字符串columnName){如果(column.Header.ToString().ToLower()==columnName.ToLower()){column.Visibility=Visibility.Collapsed;休息;}}}}本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: