When I select a series/plot, I would like to identify where it came with more than just the Name member. How can I do that?
Background:
I have a list of unsigned integer values taken from a data logger. I bundle the values up in a class with some other information, such as the name of the sample and an ID string.
Since I can’t data bind to the logged samples as-is, I convert them to a SciChart friendly “LineRenderableSeriesViewModel” and add them to a list of “ObservableCollection” that I data bind to a SciChart.
ViewModel.cs:
// Where "loggedSamples" is a SamplesContainer
//class SamplesContainer
//{
// public string Name;
// public string ID; **<=== I want to get this somehow when I select something**
// public Uint16 data {get;set;}
//}
// Convert Samples => XyDataSeries => LineRenderableSeriesViewModel
SamplesContainer loggedSamples = GetLoggedSample();
XyDataSeries<double, double> xySeries = ConvertSamplesToXyDataSeries(loggedSamples);
xySeries.SeriesName = loggedSamples.Name;
LineRenderableSeriesViewModel lineSeries = new LineRenderableSeriesViewModel() {
DataSeries = xySeries, StyleKey = "LineStyle", Stroke = Colors.Blue };
RenderableSeriesViewModelForChannels.Add(lineSeries);
MainWindow.xaml:
<s:SciChartSurface Name="sciChartItemView" Grid.Column="2"
AllowDrop="True"
DragDrop.Drop="sciChartItemView_Drop"
DragDrop.DragEnter="sciChartItemView_DragEnter"
MinHeight="80"
s:ThemeManager.Theme="BrightSpark"
RenderableSeries="{s:SeriesBinding RenderableSeriesViewModelForChannels}"
ViewportManager="{Binding SampleSetViewMod.ViewportManager}"
DebugWhyDoesntSciChartRender="True"
s:SciChartGroup.VerticalChartGroup="sharedYAxisWidth"
>
<s:SciChartSurface.XAxis>
<s:NumericAxis
DrawMajorGridLines="True"
DrawMinorGridLines="False"
DrawMajorBands="False"
VisibleRange="{Binding SampleSetViewMod.SharedXVisibleRange, Mode=TwoWay}"
Visibility="Hidden"
TextFormatting="0.######"/>
</s:SciChartSurface.XAxis>
<s:SciChartSurface.YAxis>
<s:NumericAxis AxisAlignment="Left"
DrawMajorGridLines="False"
DrawMinorGridLines="False"
DrawMajorBands="False"
Visibility="Visible">
<s:NumericAxis.GrowBy>
<s:DoubleRange Min="0.1" Max="0.1" />
</s:NumericAxis.GrowBy>
</s:NumericAxis>
</s:SciChartSurface.YAxis>
<s:SciChartSurface.ChartModifier>
<s:ModifierGroup>
<s:ZoomExtentsModifier XyDirection="YDirection"/>
<s:ZoomPanModifier ExecuteOn="MouseMiddleButton" XyDirection="XYDirection" ClipModeX="ClipAtExtents" />
<local:ExtendedMouseWheelZoomModifier />
<s:RubberBandXyZoomModifier IsEnabled="True"
IsXAxisOnly="False"
ReceiveHandledEvents="True" />
<s:LegendModifier ShowLegend="True" Orientation="Vertical" Margin="10"
GetLegendDataFor="AllSeries"
ShowVisibilityCheckboxes="False"
HorizontalAlignment="Right"
LegendPlacement="Inside"
Background="White"
/>
<local:ExtendedSeriesSelectionModifier SelectionChanged="SeriesSelectionModifier_OnSelectionChanged">
<local:ExtendedSeriesSelectionModifier.SelectedSeriesStyle>
<Style TargetType="s:FastLineRenderableSeriesForMvvm">
<Setter Property="StrokeDashArray" Value="10,5"/>
</Style>
</local:ExtendedSeriesSelectionModifier.SelectedSeriesStyle>
</local:ExtendedSeriesSelectionModifier>
<!--<s:CursorModifier x:Name="cursorModifier" IsEnabled="True" />
<s:RolloverModifier x:Name="rolloverModifier" IsEnabled="True"/>-->
</s:ModifierGroup>
</s:SciChartSurface.ChartModifier>
</s:SciChartSurface>
-
Hi Chris, Thanks for your question. Could you please tell us more about what kind of additional information do you want to get? How do you expect to get it, inside the ExtendedSeriesSelectionModifier or some other place?
-
Im pretty sure BaseRenderableSeriesViewModel.IsSelected fires a property changed notification when the user selects a series in MVVM. From that you can access BaseRenderableSeriesViewModel.DataSeries to get the data of the selected series.
-
Thanks guys! I’ve been trying to figure this out off and on for months! Andrew’s mention of the BaseRenderableSeriesViewModel.DataSeries was key to finding the answer. The DataSeries (an XyDataSeries in my case) has a “Tag” member that does just what I want. I’m posting my solution below. I’m am sooo happy.
- You must login to post comments
I am considering applying server-side licensing for my javerScript application.
In the document below, there is a phrase “Our server-side licensing component is written in C++.”
(https://support-dev.scichart.com/index.php?/Knowledgebase/Article/View/17256/42/)
However, there is only asp.net sample code on the provided github.
(https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-dotnet-server-licensing)
I wonder if there is a sample code implemented in C++ for server-side licensing.
Can you provide c++ sample code?
Also, are there any examples to run on Ubuntu?
- Christopher Bennet answered 8 years ago
- last edited 8 years ago
- You must login to post comments
Edit:
Since I can’t data bind to the logged samples as-is, I convert them to a SciChart friendly “LineRenderableSeriesViewModel” and add them to a list of “ObservableCollection” that I data bind to a SciChart.
Should read:
Since I can’t data bind to the logged samples as-is, I convert them to a SciChart friendly “LineRenderableSeriesViewModel” and add them to a list of “ObservableCollection<IRenderableSeriesViewModel>”
that I data bind to a SciChart.
- Christopher Bennet answered 8 years ago
- You must login to post comments
Please login first to submit.