【问题标题】:Hide column in WPF grid隐藏 WPF 网格中的列
【发布时间】:2013-03-13 21:45:20
【问题描述】:

我有一个这样的网格:

<Grid Name="mainPane">
    <Grid.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Hide" Click="MenuItemHide_Click" CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Parent}"></MenuItem>
        </ContextMenu>
    </Grid.ContextMenu>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>            
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions >
        <RowDefinition Height="576*"/>
    </Grid.RowDefinitions>

    <GridView x:Name="permitsCol">
        <GridViewColumn x:Name="colPermitSeq" Header="Permit Seq">
        </GridViewColumn>
    </GridView>
</Grid>

我有一个网格,我已经声明了一列。我在运行时添加了更多列。

我想要一个鼠标右键菜单(上下文菜单)来隐藏/删除一列。

我需要做什么才能隐藏该列?

【问题讨论】:

  • 我已经改写了您的问题,如果您认为您的问题不再相同,请回复。

标签: wpf gridview grid contextmenu


【解决方案1】:

你好,尝试将它绑定到 DataGrid 的 ColumnHeaderStyle

<Style x:Key="DefaultColumnStyle" TargetType="{x:Type DataGridColumnHeader}">
  <Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
</Style>

<ContextMenu  x:Key="RowMenu" DataContext="{Binding PlacementTarget.DataContext,RelativeSource={RelativeSource Self}}">
   <MenuItem Header="Hide" Click="MenuItemHide_Click" CommandParameter="{Binding RelativeSource={RelativeSource Self}}">
   </MenuItem>
</ContextMenu>

【讨论】:

  • 我不确定这对我有什么帮助?
【解决方案2】:

如果要隐藏某列,例如colPermitSeq,可以使用:

colPermitSeq.Visibility = System.Windows.Visibility.Hidden;

如果这样更方便,您也可以将其设置为 Collapse

关于删除,Grid.ColumnDefinitions 的RemoveAt 方法删除给定位置的列。

DynamicGrid.ColumnDefinitions.RemoveAt(3);

Grid.ColumnDefinitions 的 Clear 方法删除 Grid 中的所有列。

DynamicGrid.ColumnDefinitions.Clear();

【讨论】:

    猜你喜欢
    • 2023-01-17
    • 2011-01-30
    • 2011-10-18
    • 2013-12-26
    • 2013-04-19
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    相关资源
    最近更新 更多