码迷,mamicode.com
首页 > 其他好文 > 详细

使用列号访问DataGrid中的列引起的问题

时间:2014-09-09 13:02:38      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:datagrid   datagrid列   name   visibility   

问题描述

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中的列引起的问题

标签:datagrid   datagrid列   name   visibility   

原文地址:http://blog.csdn.net/yl2isoft/article/details/39138795

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!