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

0 votes
2k views

Hi,

I have a question concerning multithreaded access to the DataSeries:

We implemented an overview for our chart as described here. This works fine when we load data, add it to the series and then display it.

Now, for a certain use case we need to display live data. We implemented this in a background thread. We noticed that after some time the application freezes when the update frequency rises. In the documentation I found this:

NOTE: Considerations when a DataSeries is shared across multiple chart surfaces. Currently only a single parent chart is tracked, so DataSeries.SuspendUpdates() where the DataSeries is shared may have unexpected results.

I guess this is what is happening here…so what is the recommended approach to achieve something like this? Do we have to add the data on the UI thread if we want to have the Overview? Here it says:

When appending Data in a background thread, you cannot share a DataSeries between more than one SciChartSurface. You can still share a DataSeries between more than one RenderableSeries.

Does that mean we should create more different RenderableSeries for the main chart surface and the overview surface that are based on the same DataSeries? Any help would be appreciated!

0 votes
2k views

I am playing around the examples and noticed that SeriesSelectionModifier didn’t work for the Custom Overview. When selecting the chart, sometimes a random series in the bottom overview got selected instead. Also, anyone knows whether the Custom Overview would work in the multi Y axes situation?

Thanks.
Ning

  • Ning Qiang asked 3 years ago
  • last active 3 years ago
0 votes
4k views

I am trying to implement the Custom Overview control but the above namespace cannot be resolved.

I tried adding the required classes to my project but cannot find a way to reference them from Xaml. The required classes are the following –
DoubleToGridLengthConverter
ActualSizePropertyProxy

Without these classes the Overview scrollbar cannot be resized and stays fully expanded.

Any help please?

1 vote
4k views

In your custom overview example the width of the grid column used as padding is linked to the width of the y axis.

            <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <!--  Hosts overview control  -->
            <ColumnDefinition Width="{Binding ActualWidthValue, ElementName=proxy, Mode=OneWay, Converter={StaticResource DoubleToGridLengthConverter}}" />
            <!--  Used to bind to parent surface YAxis  -->
        </Grid.ColumnDefinitions>

        <!-- This class is in the Examples Source Code, under your install directory -->
        <helpers:ActualSizePropertyProxy x:Name="proxy" Element="{Binding ElementName=MainChartSurface, Path=YAxis}" />

What do you use for the Path if you have multiple y axes. I have tried objects like AxisAreaLeft with no success.

Showing 4 results
This template supports the sidebar's widgets. Add one or use Full Width layout.