0

カスタムツリーリストビューがあり、ツリーリストビューの最初の列にチェックボックスを配置しました。すべて問題ありませんが、他の目的で (変数 SelectEnable を使用して) チェックボックス列を非表示にしたい場合、正しく非表示になりません (非表示になりますが、空白の領域が残ります)。この問題は、データをロードするときに発生します (つまり、treelistview が空の場合、列は非表示になります)。ここに私のxamlのいくつかの部分があります:

<Style x:Key="checkboxColumnStyle"
       TargetType="GridViewColumnHeader">
  <Setter Property="Width"
          Value="0" />
  <Setter Property="Visibility"
          Value="Hidden" />

  <Style.Triggers>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource  AncestorType=UserControl},Path=SelectEnable}"
                 Value="False">
      <Setter Property="Visibility"
              Value="Hidden" />
      <Setter Property="Width"
              Value="0" />
    </DataTrigger>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource  AncestorType=UserControl},Path=SelectEnable}"
                 Value="True">
      <Setter Property="Visibility"
              Value="Visible" />
      <Setter Property="Width"
              Value="30" />
    </DataTrigger>
  </Style.Triggers>
</Style>

<DataTemplate x:Key="CellTemplate_checkBox">
  <CheckBox IsChecked="{Binding IsSelected}"
            VerticalAlignment="Center"
            Style="{DynamicResource checkboxStyle}"
            Tag="{Binding}"
            Checked="CheckBox_Checked"
            Unchecked="CheckBox_Checked" />
</DataTemplate>

<GridViewColumnCollection x:Key="gvcc">
  <GridViewColumn  CellTemplate="{StaticResource CellTemplate_checkBox}">

    <GridViewColumnHeader Style="{DynamicResource checkboxColumnStyle}"
                          MaxWidth="0">
      <CheckBox x:Name="chechBoxAll"
                Style="{DynamicResource checkboxStyle}"
                Checked="chechBoxAll_Checked"
                Unchecked="chechBoxAll_Checked" />
    </GridViewColumnHeader>
  </GridViewColumn>
  <!--Other Columns -->
</GridViewColumnCollection>

どうすればこれを修正できますか?

4

1 に答える 1