mam różne elementy w stylu mojej WPF XAML, które są takie same z wyjątkiem danych, własności wiązania, np:konsolidacyjne wspólne style WPF
<Style x:Key="HasAlphaStyle" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=HasAlpha, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HasAlpha, UpdateSourceTrigger=PropertyChanged}" Value="False">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Normal"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="HasBetaStyle" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=HasBeta, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HasBeta, UpdateSourceTrigger=PropertyChanged}" Value="False">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Normal"/>
</DataTrigger>
</Style.Triggers>
</Style>
styl jest stosowany do kontroli jak:
<TextBlock Style="{StaticResource HasAlphaStyle}" .../>
Czy istnieje sposób, w jaki mogę skonsolidować mój HasAlphaStyle i HasBetaStyle, tak aby setery własności nie musiały być duplikowane? Jedyna różnica między nimi to Binding Path do nieruchomości.
ciekawe pytanie, jest celu konsolidacji, abyś mógł utrzymać tylko jeden zestaw wartości dla seterów? Czy chcesz móc zastosować to tylko do TextBlocks lub dowolnego elementu FrameworkElement? – Dutts
1. Tak; 2. Każdy zestaw ustawiaczy, które mogą być używane wielokrotnie dla każdego FrameworkElement –