Bonjour,
J’ai un graphique qui affiche deux lineSeries, voici le Xaml :
Dans mon code behind, je mets à chacune des deux lineSerie un itemSource qui est une liste d’un objet « maison » qui comprend une date (PerDate) , une valeur gauche (SasGauche) et une valeur centre (SasCentre).
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 <toolkit:Chart x:Name="GraphSales" Canvas.Top="264" BorderBrush="#FF9FABB7" Height="156" Width="466" Canvas.Left="103" > <toolkit:LineSeries x:Name="LineGauche" DependentValuePath="X" IndependentValuePath="Y" Title="Gauche" DependentValueBinding="{Binding SasGauche}" IndependentValueBinding="{Binding PerDate }" > <charting:LineSeries.DataPointStyle> <Style TargetType="charting:DataPoint"> <Setter Property="Visibility" Value="Visible"/> <Setter Property="Background" Value="{StaticResource Ligne_Bleue}"/> </Style> </charting:LineSeries.DataPointStyle> </toolkit:LineSeries> <!--Centre--> <toolkit:LineSeries x:Name="LineCentre" DependentValuePath="X" IndependentValuePath="Y" Title="Gauche" DependentValueBinding="{Binding SasCentre}" IndependentValueBinding="{Binding PerDate }" > <charting:LineSeries.DataPointStyle> <Style TargetType="charting:DataPoint"> <Setter Property="Visibility" Value="Visible"/> <Setter Property="Background" Value="{StaticResource Ligne_Jaune}"/> </Style> </charting:LineSeries.DataPointStyle> </toolkit:LineSeries> </toolkit:Chart>
L’une des liste comprend douze éléments (de janvier à décembre) alors que l’autre n’en contient que trois(de mai à juillet).
Le résultat est que mon graphique s’affiche correctement, les douze valeurs d’une lineSerie et les trois de l’autre. Comme j’ai une donnée par date, l’axe de mes X affiche bien les douze dates allant du 1/1/2010 au 1/12/2010.
Mon problème, c’est que je ne veux pas afficher la date complète sur mon axe des X mais seulement le mois (par exemple « Jan » pour le 1/1/2010.
Pour cela, j’ai fait un converter qui me retourne :
et que j'appelle comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Return myDtValue.ToString("MMM")
Ca fonctionne, mais le résultat de mon graphique est que maintenant les mois sont classés en commençant par mai-juin-juillet et puis janvier-février-avril-Aout-Septembre-…
Code : Sélectionner tout - Visualiser dans une fenêtre à part IndependentValueBinding="{Binding PerDate,Converter=myLettreMoisConverter }"
Donc les mois qui sont contenus dans les deux lineseries (mai-juin-juillet) s’affichent en premier.
Pourquoi ?
Il faut dire que la documentation sur des propriétés comme « IndependentValuePath » ou « DependentValueBinding » sont quasi inexistantes.
J’aimerais donc que mes périodes restent classées de janvier à décembre mais en affichant « Jan », « fév », « mar », « avr »,….
Partager