J'ai un DataTemplate qui contient un Expander avec une bordure dans l'en-tête. Je veux que la bordure de l'en-tête ait des coins arrondis lorsqu'elle est repliée et des coins inférieurs droits lorsqu'elle est agrandie. Quelle serait la meilleure pratique pour y parvenir (points bonus pour les échantillons de code car je suis nouveau à XAML)?Puzzle - Modifier dynamiquement le contrôle du modèle de données à partir d'un autre modèle de données
C'est le modèle qui maintient l'extension:
<DataTemplate x:Key="A">
<StackPanel>
<Expander Name="ProjectExpander" Header="{Binding .}" HeaderTemplate="{StaticResource B}" >
<StackPanel>
<Border CornerRadius="0,0,2,2">
Ceci est l'extension DataTemplate:
<DataTemplate x:Key="B">
<Border x:Name="ProjectExpanderHeader"
CornerRadius="{Binding local:ItemUserControl.ProjectHeaderBorderRadius, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentPresenter}}}"
Background="{StaticResource ItemGradient}"
HorizontalAlignment="{Binding HorizontalAlignment,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentPresenter}},
Mode=OneWayToSource}">
<local:ItemContentsUserControl Height="30"/>
</Border>
</DataTemplate>