隐藏复选框,直到将鼠标悬停在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>

解决方法

MultiDataTrigger仅在满足所有条件时应用设置器。

代表一个触发器,当绑定数据满足一组条件时,该触发器将应用属性值或执行操作。

除此之外,绑定到DataGridRow无效,因为它没有IsChecked属性。而是添加一个对关联的IsChecked的{​​{1}}属性起作用的Trigger

CheckBox