Bonjour,

Ma question est sûrement très bête, mais j'ai créé un DataTemplate pour que les objets d'une de mes classes soient représentés par (entre autre) une CheckBox et j'aimerai intercepter les évènements captés par cette CheckBox.

J'ai essayé de faire juste ça :
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
 
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 
    <DataTemplate DataType="{x:Type model:PowerSupply}">
 
[...]
 
                    <StackPanel x:Name="commandPanel"
                                Orientation="Vertical"
                                DockPanel.Dock="Left"
                                VerticalAlignment="Center">
                        <Label x:Name="commandLabel"
                               FontSize="14"
                               VerticalAlignment="Center"
                               Content="Power supply command:" />
 
                        <CheckBox x:Name="commandCheckBox"
                                  Style="{StaticResource ThreeStateButtonStyle}"
                                  IsThreeState="False"
                                  IsChecked="{x:Null}"
                                  Checked="commandCheckBox_Checked"
                                  Indeterminate="commandCheckBox_Indeterminate"
                                  Unchecked="commandCheckBox_Unchecked">
 
                        </CheckBox>
                    </StackPanel>
[...]
    </DataTemplate>
 
</ResourceDictionary>
Si je mets ça, mon Visual Studio préféré me dit :
Erreur de génération inconnue, «*MC6024*: l’élément racine «*ResourceDictionary*» nécessite un attribut x:Class pour prendre en charge les gestionnaires d’événement du fichier XAML. Supprimez le gestionnaire d’événement de l’événement Checked ou ajoutez un attribut x:Class à l’élément racine.
J'ai donc voulu mettre l'attribut x:Class demandé et du coup, il me dit :
'PowerSupply' ne contient pas un constructeur qui accepte des arguments '1'
Alors que mon constructeur marche très bien quand l'attribut x:Class n'est pas en tête de mon template.

Quelqu'un sait comment je dois faire pour que ç fonctionne bien ?
Est-ce que je suis obligé de passer par des triggers ?

Merci d'avance !