Bonjour
Mon petit soucis est le suivant, je viens de développer un "contrôle personnalisé wpf" pour un de mes projets qui est composé d'un calendar lié à l'événement "SelectedDatesChanged".
J'ai ainsi codé la fonction lui correspondant dans le fichier .cs de mon contrôleur.
Lors de la compilation j'obtiens l'erreur suivante me demandant de rajouter un attribut x:Class="".
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 SelectedDatesChanged ou ajoutez un attribut x:Class à l'élément racine.
Voici le code wpf de mon dictionnaire de ressources (pour mes contrôleurs perso):
Code xml : 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 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" xmlns:local="clr-namespace:TIMETABLEASY.EasyCalendar.Controler"> <Style TargetType="{x:Type local:TimeTable}" x:Class=""> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:TimeTable}"> <Grid> ... <Grid Grid.Row="1" Margin="0,-22.5,0,0"> <Expander Header="2010" Margin="470,0,0,0" Name="date_expander" Height="177.76" VerticalAlignment="Top" HorizontalAlignment="Left" Width="186.633"> <Grid Height="158" Margin="-79,0,0,0"> <my:Calendar Name="week_select_calendar" SelectionMode="SingleRange" SelectedDatesChanged="week_select_calendar_SelectedDatesChanged" Margin="-1,0,2.096,0" Height="157.982" VerticalAlignment="Top" /> </Grid> </Expander> </Grid> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> ...
Voici le code ma classe correspondant au contrôleur en question :
Code c# : 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 ... namespace TIMETABLEASY.EasyCalendar.Controler { public class TimeTable : Control { static TimeTable() { DefaultStyleKeyProperty.OverrideMetadata(typeof(TimeTable), new FrameworkPropertyMetadata(typeof(TimeTable))); ... } private void week_select_calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) { MessageBox.Show("Test SelectedDatesChanged event ok"); } } }
J'ai tenté plusieurs tentatives avec le x:Class aboutissant à des erreurs une fois de plus, je saisi pas réellement ou il faut le mettre.
Pour ma part je l'avais rajouter dans l'entête avec les autres ressources (x:Class="TIMETABLEASY.EasyCalendar.Controler.TimeTable") mais ça rentre en conflit avec mon local:.... .
Ce que j'aimerai maintenant c'est trouver une solution pour lier un événement entre le contrôleur wpf et sa classe.
Merci d'avance pour toutes aides,
Myzha![]()
Partager