SciChartĀ® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components

Answered
0
0

I have a chart with a single XAxis (DateTimeAxis) and multiple YAxis (NumericAxis). I added two VerticalLineAnnotation with binding to their X1 and set the IsEditable to True. When I drag one of the annotations, I get an exception (See Attached Images).

The data series are not defined in the XAML. The chart’s SeriesSource is bound to a ObservableCollection, which I add series into in C#. I dragged the annotation AFTER the chart had drawn some series.

What am I doing wrong? šŸ™

I am using SciChart WPF v3.61.0.7847


<s:SciChartSurface.XAxis>
    <s:DateTimeAxis DrawMinorGridLines="True" DrawMinorTicks="True" />
</s:SciChartSurface.XAxis>

<s:SciChartSurface.Annotations>
    <s:VerticalLineAnnotation IsEditable="True" VerticalAlignment="Stretch" ShowLabel="True" Stroke="Orange" StrokeThickness="2" X1="{Binding M1Value}"/>
    <s:VerticalLineAnnotation IsEditable="True" VerticalAlignment="Stretch" ShowLabel="True" Stroke="Orange" StrokeThickness="2" X1="{Binding M2Value}"/>
</s:SciChartSurface.Annotations>

    private DateTime __M1Value;
    public DateTime M1Value
    {
        get { return __M1Value; }
        set
        {
            __M1Value = value;
            OnPropertyChanged(nameof(M1Value));
        }
    }


    private DateTime __M2Value;
    public DateTime M2Value
    {
        get { return __M2Value; }
        set
        {
            __M2Value = value;
            OnPropertyChanged(nameof(M2Value));
        }
    }
Images
  • You must to post comments
Good Answer
0
0

I figured out what is needed.

Because I am using multiple YAxes, there is no default YAxis (null). For some reason, the VerticalLineAnnotation needs to know its Y coordinate even if it is a “stretch” line.

So the fix was just adding
YAxisId=”IdOfArbitraryYAxis”
to the XAML block for the VerticalLineAnnotation.

It would’ve been nice if the software was smart enough to figure that it didn’t need to know Y coordinates because it is a vertical line that stretched all the way. Oh well, at least it’s an easy workaround.

  • slake
    Hi there, yes, that is correct, in multiple YAxis scenarios, VerticalLineAnnotation does need to know the YAxis ID. This is because YAxes may be configured in a way so that they do not take up all the vertical space. Apologies our software didn’t warn you more clearly, but as you say the workaround is very simple. Thanks for posting the answer!
  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.