我希望在WPF DataGrid中显示数据库中的一个表。但是,我希望隐藏第一列。此列定义了所有项的ID。我需要ID以执行进一步操作,但是我不希望在DataGrid中显示它。我尝试了下面的代码,但是在最后一行出现错误,即索引必须大于0。
DbMainTable.ItemsSource = dataHandler.visibleDatabaseTable.DefaultView;
DbMainTable.Columns[0].Visibility = Visibility.Hidden;
如果有人能帮助我,请告诉我。
3条答案
按热度按时间0md85ypi1#
问题是,当您尝试设置列的可见性时,它还不存在。
试试这个:
在构造函数中:
如下:
jslywgbw2#
你能提供更多关于这个问题的信息吗?很难猜测代码的哪一部分不工作。
但如果我猜你使用自动生成的列,你试图隐藏这个列之前,它被添加到数组列。
我试图用自动生成的列来做这件事,它给了我和你得到的一样的异常。
要解决此问题,请将此部分代码移至已加载此数据网格(及其列)的位置-例如,移至代码隐藏中的OnLoaded事件处理程序
为此:
在后面代码中添加此方法
在XAML中:
nhjlsmyf3#
如果您需要id,但不想在网格中看到列,那么我认为最简单的方法是首先不添加列。
使用visibleDatabaseTable中的数据。
在数据网格上: