浮华过后,真金始现

一切问题最终都是时间问题,一切烦恼其实都是自寻烦恼
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[转]限定ListView列宽度

Posted on 2008-06-27 12:28  Kolor  阅读(762)  评论(2编辑  收藏  举报

今天遇到的一个Defect是:应该限定List View中列最小宽度以避免用户将列宽度拖拽为0而导致列消失。WPF的List View没有内置该机制,但我们可以通过监听用户拖拽操作来跟踪列宽并进一步限定用户拖拽,我已经搞定了该问题,请参见附件中的DEMO。Demo中的“ListViewLayoutManagerLib”项目已经该操作封装,如何使用该封装,请参考下面的说明(或GridViewCodeDemo.Window1.xaml)
1,将ListViewLayoutManagerLib引入到项目中,名引入名字空间:xmlns:listViewMgr="clr-namespace:ListViewLayoutManagerLib;assembly=ListViewLayoutManagerLib"
2,在需要限定操作的ListView控件上启用ListViewManager:listViewMgr:ListViewLayoutManager.Enabled="True"
3,在需要限定的列上制定限定值  listViewMgr:RangeColumn.MinWidth="50"
            <ListView listViewMgr:ListViewLayoutManager.Enabled="True">
            <ListView.View >
                <GridView AllowsColumnReorder="true">
                    <GridViewColumn
                        listViewMgr:RangeColumn.MinWidth="50"
                        Header="MinWidth100"
                        Width="150"/>
                    <GridViewColumn
                      listViewMgr:RangeColumn.MinWidth="100"
                        listViewMgr:RangeColumn.MaxWidth="200"
                        Header="Width100~200" Width="150"/>
                    <GridViewColumn Header="Normal" Width="150"/>
                </GridView>
            </ListView.View>
        </ListView>
附件下载
原文地址:http://www.netcsharp.cn/showtopic-992.aspx