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

0 votes
2k views

Hi there,

I am relatively new to C# and scicharts so you will have to forgive me a little.

In the project I am working on, I am trying to add dynamic renderable series as the user selects items in a tree. I have looked through the online tutorials and forums but still am having trouble. I am creating my own renderable series view model class derived off of LineRenderableSeriesViewModel. I found documentation that I needed to override the ViewType property and set it to a FastLineRenderableSeriesForMvvm.

When I am creating these objects to add to the ObservableCollection which is bound to my scichart surface, I can set the PointMarker and its properties, but not the SelectedPointMarker properties.

XAML:

    <s:SciChartSurface Style="{StaticResource BasicSciChartSurfaceStyleRateVsTime}"
                       ViewportManager="{Binding RateVsTimePlot.Manipulator.Viewport}"
                       Name="RateVsTime" x:FieldModifier="private"
                       ZoomHistoryManager="{Binding RateVsTimePlot.ZoomHistory}"
                       PreviewMouseLeftButtonDown="PreviewRateVsTimeMouseLeftButtonDown"
                       PreviewMouseLeftButtonUp="PreviewRateVsTimeMouseLeftButtonUp"
                       RenderableSeries="{s:SeriesBinding RateVsTimePlot.RenderableSeriesViewModels}"
                       local:YAxesCollectionBehaviour.AxisSource="{Binding RateVsTimePlot.YAxesViewModels}"
                       local:YAxesCollectionBehaviour.AxisStyle="{StaticResource AxisStyle}"/>         

Style:

<Style x:Key="ProdLineStyle" TargetType="s:FastLineRenderableSeriesForMvvm">
    <Setter Property="s:TooltipModifier.IncludeSeries" Value="False"/>
    <Setter Property="SelectedPointMarker">
        <Setter.Value>
            <s:EllipsePointMarker Fill="{Binding SeriesColors.ProductionColor}"
                                  Stroke="{Binding SeriesColors.ProductionColor}"
                                  Width="6" Height="6">
            </s:EllipsePointMarker>
        </Setter.Value>
     </Setter>
</Style>

ViewModel :

        var renderableSeries = new GenericRenderableSeriesViewModel
        {
            DataSeries = dataSeries.DataSeries,
            YAxisId = dataSeries.AxisId,
            IsSelected = IsSelected,
            SeriesColors = _dataColors[fluidRateType],
            DisplayEnabled = AnalysisInteractionMode.IsLineManipulationDisabled,
            PointMarker = new EllipsePointMarker(),
            StyleKey = "ProdLineStyle"
        };

        renderableSeries.SetRenderableSeriesColorSettings();

        renderableSeries.DataSeries.SeriesName = fluidRateType.ToString();
        return renderableSeries;

public void SetRenderableSeriesColorSettings()
    {
        Stroke = SeriesColors.ProductionColor;

        if (PointMarker == null) return;

        PointMarker.Stroke = SeriesColors.ProductionColor;
        PointMarker.Fill = SeriesColors.ProductionColor;
        PointMarker.Height = PointNonSelectedHeight;
        PointMarker.Width = PointNonSelectedWidth;
    }

When I run my app, I see what I am expecting by default, but when I do a point selection rectangle, the behavior is not correct. I only see the line. The points with in the rectangle disappear.

I am trying to move away from having the style set the selectedPointMarker, and doing it through code in the view model just like the function above as users will be able to change these properties in the future. But so far I haven’t found a way to do either.

Am I using the correct classes, or do I need to override something else? Any ideas or suggestions would be greatly appreciated

Thanks
Rylan

0 votes
2k views

Hi there,

I’m having an issue showing selected points on top of all other series.

I have created a polygon selector chart modifier based on the following knowledge article: http://support.scichart.com/index.php?/Knowledgebase/Article/View/17237/32/custom-chartmodifiers—part-3—custom-select-and-drag-a-series

Specifically, the issue that I’m having is that when the user does the polygon selection if the last point of the polygon is on one of the other series, the series shows above the selected points.

http://support.scichart.com/index.php?/Knowledgebase/Article/View/17180/28/changing-z-order-of-renderableseries

I have tried to set IsSelected = true (from above link), but that doesn’t seem to work. Is there another way of doing it? Or am I doing it at the wrong place? I have tried to set the IsSelected = true right before and right after I add the selected point series to the surface.

I have added two images, the first is how the points are currently drawing, and the second of how it should look every time.

Showing 2 results
This template supports the sidebar's widgets. Add one or use Full Width layout.
SciChart WPF v6 BETA released! Note pricing/licensing changes are coming. Contact us to beat the rise!Read more
+