隐藏复选框直到鼠标悬停并使其在选中后保留 WPF

Hide checkbox until mouseover and make it stay once checked WPF

复选框是不可见的,直到我将鼠标悬停在我想要的东西上,但现在我希望它在被选中后保持可见。我试过实现多触发器,但它似乎不起作用:

<DataGridTemplateColumn.CellTemplate>
   <DataTemplate>
      <CheckBox Name="cbkSelect" 
                IsChecked="{Binding Path=IsSelectedForOrder, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
         <CheckBox.Style>
            <Style TargetType="{x:Type CheckBox}">
               <Setter Property="Visibility" Value="Hidden"/>
               <Style.Triggers>
                  <MultiDataTrigger>
                     <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Value="True"></Condition>
                        <Condition Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Value="True"></Condition>
                     </MultiDataTrigger.Conditions>
                     <MultiDataTrigger.Setters>
                        <Setter Property="Visibility" Value="Visible"/>
                     </MultiDataTrigger.Setters>
                  </MultiDataTrigger>
               </Style.Triggers>
            </Style>
         </CheckBox.Style>
      </CheckBox>
   </DataTemplate>
</DataGridTemplateColumn.CellTemplate>

A MultiDataTrigger 将仅在满足所有条件时应用 setter。

Represents a trigger that applies property values or performs actions when the bound data meet a set of conditions.

除此之外,绑定到 DataGridRow 不起作用,因为它没有 IsChecked 属性。相反,添加作用于关联 CheckBox.

IsChecked 属性 的 Trigger
<Style TargetType="{x:Type CheckBox}">
   <Setter Property="Visibility" Value="Hidden"/>
   <Style.Triggers>
      <Trigger Property="IsChecked" Value="True">
         <Setter Property="Visibility" Value="Visible"/>
      </Trigger>
      <DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Value="True">
         <Setter Property="Visibility" Value="Visible"/>
      </DataTrigger>
   </Style.Triggers>
</Style>