Wpf 基于特性值应用样式
在使用Infragistics XamDataGrid时,我遇到了这样一种情况:我希望仅在设置了某个属性时应用样式。然而,我认为这更像是一个一般的WPF/风格的问题,而不是特定于xamDataGrid的问题 下面的样式是我当前使用的样式。它向记录选择器区域添加复选框:Wpf 基于特性值应用样式,wpf,infragistics,xamdatagrid,Wpf,Infragistics,Xamdatagrid,在使用Infragistics XamDataGrid时,我遇到了这样一种情况:我希望仅在设置了某个属性时应用样式。然而,我认为这更像是一个一般的WPF/风格的问题,而不是特定于xamDataGrid的问题 下面的样式是我当前使用的样式。它向记录选择器区域添加复选框: <Style TargetType="{x:Type igDP:RecordSelector}"> <Setter Property="Template"> <Setter.V
<Style TargetType="{x:Type igDP:RecordSelector}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:RecordSelector}">
<CheckBox x:Name="HeaderCheckBox"
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsChecked="{Binding Path=DataItem.IsChecked}">
</CheckBox>
<ControlTemplate.Triggers>
<Trigger Property="IsFilterRecord" Value="True">
<Setter TargetName="HeaderCheckBox" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsAddRecord" Value="True">
<Setter TargetName="HeaderCheckBox" Property="Visibility" Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
TargetType是RecordSelector。如果记录是筛选行或添加记录行,我不想显示该复选框
我想对此进行更改,以便如果记录是add记录行(IsAddRecord==true),则根本不应用样式。我希望“添加记录”行保留其默认样式
这是可能的吗?您不能阻止从样式本身内部应用样式,但可以阻止使用样式应用其设置程序。触发器:
<Style TargetType="{x:Type igDP:RecordSelector}">
<Style.Triggers>
<Trigger Property="IsAddRecord" Value="False">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:RecordSelector}">
<CheckBox x:Name="HeaderCheckBox"
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsChecked="{Binding Path=DataItem.IsChecked}">
</CheckBox>
<ControlTemplate.Triggers>
<Trigger Property="IsFilterRecord" Value="True">
<Setter TargetName="HeaderCheckBox" Property="Visibility" Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>