l'axe X de mon graphe n'est plus ordonné si j'utilise un converter
Bonjour,
J’ai un graphique qui affiche deux lineSeries, voici le Xaml :
Code:
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> |
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).
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 :
Code:
Return myDtValue.ToString("MMM")
et que j'appelle comme suit:
Code:
IndependentValueBinding="{Binding PerDate,Converter=myLettreMoisConverter }"
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-…
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 »,….