首页 > 代码库 > 使用列号访问DataGrid中的列引起的问题
使用列号访问DataGrid中的列引起的问题
问题描述
WPF应用程序中,使用DataGrid来显示员工信息,包含公司名称,姓名,年龄,电话四列。而在某些情况下,电话列需要被隐藏,所以在画面的后端代码中使用下面的代码来控制电话列的显示情况。
if (isShowTelephone) { this.DataGrid_People.Columns[3].Visibility = Visibility.Visible; } else { this.DataGrid_People.Columns[3].Visibility = Visibility.Collapsed; }当然,使用这些代码可以达到想要的效果。只是,这里存在一个隐患:倘若后面的开发人员在电话列的前面增加或者删除了若干列的话,再去执行我们的代码就会出问题,因为此时的this.DataGrid_People.Columns[3]指的就不再是电话列,那么控制电话列显示的代码就变成了控制其他列显示的代码,该隐藏的可能没有被隐藏,而该显示的可能没有被正常显示。
解决方法
为电话列指定Name,使用Name来访问电话列,假设将电话列命名为Columns_Telephone,那么控制电话列显示的代码可以修改为:
if (isShowTelephone) { this.Columns_Telephone.Visibility = Visibility.Visible; } else { this.Columns_Telephone.Visibility = Visibility.Collapsed; }这样一来,再在电话列前面增加或者删除列时,就不会影响到这部分代码的正确执行了。
使用列号访问DataGrid中的列引起的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。