Dans mon projet, j'ai un contrôle personnalisé qui est un expandeur. Le contenu du bouton qui permet d'étendre ou de réduire le contrôle doit changer en fonction de l'état. J'ai réussi à faire fonctionner la plupart des éléments, mais je n'arrive pas à lier le texte au contenu que j'utilise pour le bouton.
Voici mon code XAML de Generic.xaml :
<ControlTemplate x:Key="PndExpanderControlVertical" TargetType="{x:Type local:PndExpanderControl}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<dx:DXExpander x:Name="expander" Grid.Column="0" FlowDirection="LeftToRight" VerticalExpand="None" HorizontalExpand="FromLeftToRight" IsExpanded="True">
<dxlc:GroupBox x:Name="group_box" Padding="0" Header="Header"/>
</dx:DXExpander>
<Button Grid.Column="1" Padding="1" x:Name="expand_button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<!-- Button-Style, expanded -->
<DataTrigger Binding="{Binding IsExpanded, ElementName=expander}" Value="True">
<Setter Property="Content" Value="↧ ↧"/>
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="90"/>
</Setter.Value>
</Setter>
</DataTrigger>
<!-- Button-Style, collapsed -->
<DataTrigger Binding="{Binding IsExpanded, ElementName=expander}" Value="False">
<Setter Property="Content">
<Setter.Value>
<TextBlock>
<TextBlock Text="↥ "/>
<TextBlock Text="{Binding Header, ElementName=group_box}"/>
<TextBlock Text=" ↥"/>
</TextBlock>
</Setter.Value>
</Setter>
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="90"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
</Border>
</ControlTemplate>
Comme vous pouvez le voir, j'utilise un bloc de texte imbriqué pour combiner l'en-tête de la group_box avec des flèches. Cependant, la liaison du bloc de texte central ne fonctionne pas.
Pour être honnête, je travaille avec WPF depuis un certain temps maintenant mais la liaison de données (à la bonne source) reste un mystère pour moi. La plupart du temps, j'arrive à la faire fonctionner d'une manière ou d'une autre, mais si elle échoue, je n'ai aucune idée de ce qu'il faut faire. J'ai cherché sur Google pendant plusieurs heures et j'ai essayé plusieurs choses, mais rien n'a fonctionné pour moi.
Toute aide est appréciée.