Hello
J'ai découvert un bug très bizarre ! J'ai une ComboBox avec une liste d'employés. Les éléments de la ComboBox sont des Label (prénom + nom de chaque employé) Le ToolTip de ces Labels est une Grid contenant la photo de l'employé + son nom et son prénom.
Le scénario qui déclenche le bug :
- je clique sur la ComboBox pour la "déplier"
- je passe mon curseur au dessus de quelques éléments
- je clique ailleurs que sur la ComboBox pour la replier
- je clique à nouveau sur la ComboBox et passe mon curseur sur les élements
Et là j'ai une exception qui se déclenche avec pour message d'erreur :
"L’élément spécifié est déjà l’enfant logique d’un autre élément. Déconnectez-le d’abord" (la traduction en anglais semble être "Specified element is already the logical child of another element. Disconnect it first")
Le message d'erreur ne m'indique aucun numéro de ligne donc difficile de savoir d'où ça vient !
J'ai fait des recherches sur Google mais tous les résultats que je trouve sont liés à des opérations faites en code-behind, or moi tout est dans le XAML !
Quand j'enlève le ToolTip je n'ai plus cette erreur. Mon code si ça peut aider :
J'utilise des converters pour afficher les noms et les photos. Rien de très compliqué...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <DataTemplate x:Key="SupervisorsTemplate"> <Label> <Label.Content> <MultiBinding Converter="{StaticResource NameConverter}"> <Binding Path="PeoFirstName" /> <Binding Path="PeoLastName" /> </MultiBinding> </Label.Content> <Label.ToolTip> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Image Grid.RowSpan="2"> <Image.Source> <MultiBinding Converter="{StaticResource PhotoConverter}"> <Binding Path="PeoFirstName" /> <Binding Path="PeoLastName" /> </MultiBinding> </Image.Source> </Image> <StackPanel Orientation="Horizontal" Grid.Column="1"> <Label Content="Nom :" /> <Label Content="{Binding Path=PeoLastName}" /> </StackPanel> <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="1"> <Label Content="Prénom :" /> <Label Content="{Binding Path=PeoFirstName}" /> </StackPanel> </Grid> </Label.ToolTip> </Label> </DataTemplate>
Partager