Bonjour,

le sujet n'est pas clair mais mon problème est sans doute assez classique mais non trivial j'espère :

J'ai un ResourceDictionary qui contient un DataTemplate qui contient un ContentControl.

Je voudrai que lorsque ce ContentControl obtient le focus (donc sur ContentControl.GotFocus ou ContentControl.IsFocused=true), la valeur d'un autre contrôle (un TextBox) soit modifié à partir d'une propriété de l'objet lié au DataContext du ContentControl qui a le focus.

J'ai essayé de créer un événement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<ContentControl.Style>
  <Style TargetType="{x:Type ContentControl}">
    <EventSetter Event="GotFocus" Handler="OnFocus"/>
  </Style>
</ContentControl.Style>
Mais ça ne compile plus. J'ai pourtant essayé de créer une classe pour la méthode OnFocus, classe déclarée dans x:Class du fichier XAML ResourceDictionary. Mais ça ne fonctionne pas.

J'ai aussi essayé avec un Trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<Style>
                        <Style.Triggers>
                            <Trigger Property="ContentControl.IsFocused" Value="true">
                                <Setter TargetName="PropertyGrid" Property="CurrentDescription" Value="TEST OK"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
Mais on ne peut pas spécifier de TargetName sur un contrôle en dehors de la portée du Style.

Bref, existe-t-il une solution pas trop compliquée ?