Проблемы с данными DateTime в Silverlight и C # - PullRequest
0 голосов
/ 20 июля 2011

Я использую VISI Fire в Silverlight и C # для создания некоторых диаграмм данных. Один стиль диаграммы позволяет отображать сложенные данные в столбцах кода xaml, который я использую, выглядит следующим образом:

IMG]https://i67.photobucket.com/albums/h292/Athono/xaml.png[/IMG

График, который я пытаюсь построить, основан на примере диаграммы Visi Fire. если вы перейдете на http://www.visifire.com/silverlight_wpf_charts_gauges_gallery.php и посмотрите на их составные примеры http://www.visifire.com/silverlight_stacked_charts_gallery.php, вы увидите пример xaml, который я пытаюсь подражать.

IMG]https://i67.photobucket.com/albums/h292/Athono/post_this.png[/IMG

Но моя диаграмма выходит по-другому. у меня есть эта странная особенность даты перекрытия

IMG]http://i67.photobucket.com/albums/h292/Athono/badrepresentation.png[/IMG

Теперь я тщательно прошёл код и, насколько я могу судить, у меня одна и та же дата для каждой пары наборов данных.

IMG]http://i67.photobucket.com/albums/h292/Athono/code-1.png[/IMG

Я прошел этот код и убедился, что для каждого значения i годы и месяцы для каждой пары данных абсолютно одинаковы. Так почему мой график так испорчен?

Что-то не так с тем, как я использую класс DateTime?

new DateTime((Int32) Year_Id,(Int32) SMonth_Id, (Int32)1);

Ответы [ 2 ]

1 голос
/ 20 июля 2011

1-е решение:

Установите свойство AxisXLabel вместо XValue в обоих DataSeries как String.Не устанавливайте XValueType в DataSeries или по оси X.Также не устанавливайте свойство Interval по оси x.

Пример:

<vc:Chart.Series>
    <vc:DataSeries>
        <vc:DataSeries.DataPoints>
            <vc:DataPoint  AxisXLabel="Jan - 2010" YValue="2"/>
            <vc:DataPoint  AxisXLabel="Feb - 2010" YValue="3"/>
            <vc:DataPoint  AxisXLabel="Mar - 2010" YValue="4"/>
        </vc:DataSeries.DataPoints>
    </vc:DataSeries>
    <vc:DataSeries>
        <vc:DataSeries.DataPoints>
            <vc:DataPoint  AxisXLabel="Jan - 2010" YValue="10"/>
            <vc:DataPoint  AxisXLabel="Feb - 2010" YValue="20"/>
            <vc:DataPoint  AxisXLabel="Mar - 2010" YValue="30"/>
        </vc:DataSeries.DataPoints>
    </vc:DataSeries>
</vc:Chart.Series>

2-е решение:

Нет необходимости вносить какие-либо изменения вваш текущий код.Продолжите настройку XValue, как вы устанавливаете в настоящее время.Вам просто нужно установить два свойства IntervalType = "Month" и Interval = "1" по оси X в XAML.

0 голосов
/ 21 июля 2011

2-е решение от Сомнатх работает.

Я не уверен насчет 1-го.Я помню, что это пытались, и у меня не было хороших результатов.Для составного графика у него были проблемы.

Я наконец заработал.Мне пришлось добавить некоторые спецификации в xaml.

Вот исправление:

<vc:Chart.AxesX>
    <vc:Axis ValueFormatString="MMM - yyyy" Padding="4" LineThickness="0" IntervalType="Months"  Interval="1"/>
</vc:Chart.AxesX>
...