WPF:动态显示或隐藏Listview的某一列

本文介绍了如何在WPF应用中动态地显示或隐藏ListView的列,作者在研究过程中受到Mgen博客的启发,但发现了一些问题,如逻辑控制不当可能引发异常以及对控件类型的限制。作者分享了自己的解决方案,提供了一种更灵活的方法来实现ListView列的显隐管理。
摘要由CSDN通过智能技术生成

      这几天做项目,需要做个listview满足能够动态显示或隐藏某些列,由于自己是菜鸟水平,查了两天资料也没有想出解决办法。就在我山穷水尽的时候看到了Mgen的一篇博客,给了我很大启发,所以我也决定把自己做的一些东西给大家说说,希望能帮助像我一样的菜鸟!

我读了Mgen的博文(http://www.cnblogs.com/mgen/archive/2011/07/24/2115458.html),给我很大启发,但也发现有些缺陷。我感觉的缺陷列举如下:

1、控制隐藏显示的逻辑关系有问题,搞不好会抛异常。

2、你设置管理控制显隐的控件只能是继承于itemcontrol的控件,有一定的局限性(比如说我想做一组button按钮,每个button控制一列话,它就不能用了)

下面,我贴出自己的代码,然后分析我是怎样解决这些问题的。

 1 <Window x:Class="mgen_autocolumns.MainWindow"
 2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4         xmlns:loc="clr-namespace:mgen_autocolumns"        
 5         Title="Mgen" Height="350" Width="525">
 6     <DockPanel>
 7         <!-- 已经有的ListView -->
 8         <ListView Name="list" DockPanel.Dock="Top" >
 9             <ListView.View>
10                 <GridView loc:GridViewUtility.ColumnObjectCollection="{Binding Path=ColumnCollection}">
11                     <GridViewColumn Header="姓名"
12                                 Width="100"
13                                 DisplayMemberBinding="{Binding Name}" />
14                     <GridViewColumn Header="年龄" 
15                                 Width="50"
16                                 DisplayMemberBinding="{Binding Age}" />
17                     <GridViewColumn Header="分数" 
18                                 Width="100">
19                         <GridViewColumn.CellTemplate>
20                             <DataTemplate>
21                                 <ProgressBar Width="80" Height="10" Maximum="100" Value="{Binding Score}" />
22                             </DataTemplate>
23                        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值