问题描述
在我将鼠标悬停在所需的位置之前,该复选框是不可见的,但是现在我希望它在选中后保持可见状态。我曾尝试实现多重触发,但似乎不起作用:
<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