gpt4 book ai didi

wpf - 根据属性值应用样式

转载 作者:行者123 更新时间:2023-12-04 07:09:04 27 4
gpt4 key购买 nike

使用Infragistics XamDataGrid时,遇到一种情况,我希望仅在设置了某个属性的情况下才应用样式。但是,我认为这更多的是WPF/样式问题,而不是特定于xamDataGrid的问题。

下面的样式是我当前正在使用的样式。它将复选框添加到记录选择器区域:

<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。如果记录是过滤器行还是添加记录行,则我不想显示该复选框。

我要更改此设置,以便如果记录是添加记录行(IsAddRecord == true),则根本不应用样式。我希望添加记录行保留其默认样式。

这可能吗?

最佳答案

您不能阻止在样式本身中应用样式,但是可以阻止使用Style.Triggers来应用样式 setter :

<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>

关于wpf - 根据属性值应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323273/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com