隐藏wpf listview的列

问题描述 投票:8回答:4

如何使列无法访问wpf listview? (一种方法是将宽度属性设置为最小长度,但这不是正确的解决方案)任何人都可以帮助我吗?

wpf listview
4个回答
8
投票

here这样做的一种方法有一个非常简单的解释。

查找并删除您的列:

var temp = myGridView.Columns[0];
myGridView.Columns.RemoveAt(0);

在视图中插回列:

myGridView.Columns.Add(temp );
temp.Width = 0;
temp.Width = Double.NaN;

如果要隐藏它,请将其从列集合中删除,并在要再次显示该列时重新插入该列。


1
投票

要隐藏ListView的标头,可以通过在本地覆盖样式来修改ColumnHeaderContainer的Visibility属性。

<ListView>
<ListView.View>
    <GridView>
        <GridView.ColumnHeaderContainerStyle>
           <Style>
               <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
           </Style>
        </GridView.ColumnHeaderContainerStyle>
        <GridView.Columns>
            ...
        </GridView.Columns>
    </GridView>
</ListView.View>


0
投票

我希望这会对某人有所帮助:

我发现的最好方法是做这两件事: 1.将列的宽度设置为0(这也可以在GridViewColumnHeader中完成) - 当您想要再次显示列时,在代码中更改它。 2.将GridViewColumnHeader的Visibility设置设置为Hidden - 如果要再次显示列,或者甚至可以使用绑定,请将其设置为代码。

上面的第二项有助于使列不可由用户扩展。


0
投票

要隐藏列,可以将列宽设置为零,并禁用标题,如下所示:

设置GridViewColumn Width并将GridViewColumnHeader IsEnabled设置为False。

例:

<GridViewColumn Width="{Binding ColumnWidth, Mode=OneWay}">
<GridViewColumnHeader Content="Nº Item" IsEnabled="False" />
© www.soinside.com 2019 - 2024. All rights reserved.