When I try to bind VisibleRange as a simple binding on the XAxis it works perfectly.
<scichart:SciChartSurface.XAxis>
<scichart:NumericAxis AxisTitle="Tempo (s)"
VisibleRange="{Binding XVisibleRange, Mode=TwoWay}"/>
</scichart:SciChartSurface.XAxis>
But, in my case I have only one chart beeing displayed but two “RenderableSeries” in which only one of them is displayed, accordingly to the user selection. I use triggers for this and it works like a charm.
<scichart:SciChartSurface.Resources>
<Style TargetType="{x:Type scichart:SciChartSurface}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=DAQ1_Selected, Path=IsChecked}" Value="true">
<Setter Property="RenderableSeries" Value="{scichart:SeriesBinding RenderableSeriesViewModels[0]}"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=DAQ1_Selected, Path=IsChecked}" Value="false">
<Setter Property="RenderableSeries" Value="{scichart:SeriesBinding RenderableSeriesViewModels[1]}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</scichart:SciChartSurface.Resources>
Now I’m trying to set the “VisibleRange” of each “RenderableSeries” with triggers but I cannot achieve that because there is no option to binding on the setter.
<scichart:SciChartSurface.XAxis>
<scichart:NumericAxis AxisTitle="Tempo (s)"
GrowBy="0.01,0.01">
<Style TargetType="{x:Type scichart:NumericAxis}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=DAQ1_Selected, Path=IsChecked}" Value="true">
<Setter Property="VisibleRange" Value="{scichart:AxesBinding XVisibleRange[0], Mode=TwoWay}" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=DAQ1_Selected, Path=IsChecked}" Value="false">
<Setter Property="VisibleRange" Value="{scichart:AxesBinding XVisibleRange[1], Mode=TwoWay}" />
</DataTrigger>
</Style.Triggers>
</Style>
</scichart:NumericAxis>
</scichart:SciChartSurface.XAxis>
On the “value” of Setter I have only the following options:
- AnnotationsBinding AxisBindingBinding MultiBindingCompatible
SeriesBinding ThemeBinding VerticalLinesBinding
My question is:
Is there a way to binding “VisibleRange” on “Style.Triggers”?
Thank you,
Eduardo Arruda
- Eduardo Arruda asked 1 year ago
- last active 1 year ago
I have the following code and want to move this portion to code-behind but have problems understanding how I can programmatically set the properties in Style:
<s:SciChartSurface.ChartModifier>
<!-- Provides Interactivity -->
<s:RubberBandXyZoomModifier IsAnimated = "False" IsXAxisOnly = "True" ExecuteOn = "MouseRightButton"/>
<s:ZoomPanModifier XyDirection="XYDirection" ClipModeX = "ClipAtExtents" ExecuteOn ="MouseLeftButton" />
<s:MouseWheelZoomModifier XyDirection = "XYDirection"/>
<s:ZoomExtentsModifier IsAnimated = "False" ExecuteOn = "MouseDoubleClick" />
<s:XAxisDragModifier DragMode = "Scale"/>
<s:CursorModifier SourceMode="AllSeries" UseInterpolation="True"/>
<!-- Provides selection of series and custom styling to the selected series -->
<s:SeriesSelectionModifier ReceiveHandledEvents="True" SelectionChanged="SeriesSelectionModifier_OnSelectionChanged">
<s:SeriesSelectionModifier.SelectedSeriesStyle>
<Style TargetType="s:BaseRenderableSeries">
<Setter Property="SeriesColor" Value="White"/>
<Setter Property="PointMarkerTemplate">
<Setter.Value>
<ControlTemplate>
<s:EllipsePointMarker Fill="#FF00DC" Stroke="White" Width="7" Height="7"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</s:SeriesSelectionModifier.SelectedSeriesStyle>
</s:SeriesSelectionModifier>
<!-- Provides a data source for the legend control -->
<s:LegendModifier ShowLegend="True" GetLegendDataFor="SelectedSeries" Margin="10"/>
</s:ModifierGroup>
</s:SciChartSurface.ChartModifier>
Particularly the SeriesSelectionModifier and its property setters seem difficult for me to implement in code-behind. Can you please provide some sample code how I would actually implement the SeriesSelectionModifier with above Property Setters above in C# code rather than in XAML?
Thanks
- bbmat asked 9 years ago
- last active 9 years ago