- Home
- Forum
- Xamarin.Forms
- Same SelectionChanged event fires for different charts
Same SelectionChanged event fires for different charts
Hi Syncfusion Team!
We are having a strange issue of Chart selection behavior. Here is what we are encountering:
-We have got two different charts, Doughnut and Line chart on same page, in same StackLayout.
-We have "SfDoughnutChart_OnSelectionChanged" event bound to Doughnut chart and "SfLineChart_OnSelectionChanged" event bound to Line chart.
-The problem is, "SfLineChart_OnSelectionChanged" event is called each time, whether we click on Doughnut chart or Line chart. SfDoughnutChart_OnSelectionChanged event never fires.
-If we check e.SelectedSeries on selection event, the output is always LineSeries.
-However if we remove "SfLineChart_OnSelectionChanged" event binding from Line chart, then SfDoughnutChart_OnSelectionChanged event starts firing as expected.
Can you please respond as soon as possible. Here is our code:
XAML:
<StackLayout Spacing="0" Padding="0" Orientation="Vertical">
<chart:SfChart HorizontalOptions="FillAndExpand" x:Name="DoughnutChart" VerticalOptions="FillAndExpand" SelectionChanged="SfDoughnutChart_OnSelectionChanged">
<chart:SfChart.Legend>
<chart:ChartLegend DockPosition="Bottom">
<chart:ChartLegend.LabelStyle>
<chart:ChartLegendLabelStyle Font="7"/>
</chart:ChartLegend.LabelStyle>
</chart:ChartLegend>
</chart:SfChart.Legend>
<chart:DoughnutSeries DataMarkerPosition="OutsideExtended" ItemsSource="{Binding GigsData}" IsVisibleOnLegend="True"
ConnectorLineType="Line" EnableDataPointSelection="True">
<chart:DoughnutSeries.DataMarker>
<chart:ChartDataMarker LabelContent="YValue">
<chart:ChartDataMarker.LabelStyle>
<chart:DataMarkerLabelStyle Font="25" Margin="2">
</chart:DataMarkerLabelStyle>
</chart:ChartDataMarker.LabelStyle>
</chart:ChartDataMarker>
</chart:DoughnutSeries.DataMarker>
</chart:DoughnutSeries>
</chart:SfChart>
<chart:SfChart HorizontalOptions="FillAndExpand" x:Name="LineChart" VerticalOptions="FillAndExpand" SelectionChanged="SfLineChart_OnSelectionChanged">
<!--<chart:SfChart.ChartBehaviors>
<chart:ChartZoomPanBehavior EnableSelectionZooming="True" SelectionRectStrokeWidth="1" />
</chart:SfChart.ChartBehaviors>-->
<chart:SfChart.PrimaryAxis>
<chart:CategoryAxis PlotOffset="10"/>
</chart:SfChart.PrimaryAxis>
<chart:SfChart.SecondaryAxis>
<chart:NumericalAxis />
</chart:SfChart.SecondaryAxis>
<chart:SfChart.Legend>
<chart:ChartLegend DockPosition="Bottom" ToggleSeriesVisibility="True">
<chart:ChartLegend.LabelStyle>
<chart:ChartLegendLabelStyle Font="7"/>
</chart:ChartLegend.LabelStyle>
</chart:ChartLegend>
</chart:SfChart.Legend>
<chart:SfChart.Series>
<chart:LineSeries ItemsSource="{Binding Published}" EnableDataPointSelection="True" Label="Published" Color="{StaticResource published}">
<chart:LineSeries.DataMarker>
<chart:ChartDataMarker ShowLabel="False" ShowMarker="True" MarkerColor="{StaticResource published}" MarkerHeight="{StaticResource MarkerHeight}" MarkerWidth="{StaticResource MarkerWidth}" />
</chart:LineSeries.DataMarker>
</chart:LineSeries>
</chart:SfChart.Series>
</chart:SfChart>
</StackLayout>
C# Code:
private void SfChart_OnSelectionChanged(object sender, ChartSelectionEventArgs e)
{
var chart = sender as SfChart;
//e.SelectedSeries is always Line Series in our case.
if (e.SelectedSeries is DoughnutSeries)
{
}
else
{
}
}
C# Code - End
Regards,
Sajid.
SIGN IN To post a reply.
2 Replies
SA
Sajid Ali
July 24, 2015 11:08 AM UTC
Our actual C# Code:
private void SfDoughnutChart_OnSelectionChanged(object sender, ChartSelectionEventArgs e)
{
//This event does not fires for Doughnut chart as expected.
var chart = sender as SfChart;
var doughnut = chart.Series[0] as DoughnutSeries;
if (e.PreviousSelectedIndex == e.SelectedDataPointIndex)
{
doughnut.ExplodeIndex = -1;
}
else
{
doughnut.ExplodeIndex = e.SelectedDataPointIndex;
}
}
private void SfLineChart_OnSelectionChanged(object sender, ChartSelectionEventArgs e)
{
//This event fires for both Doughnut and Line Series.
}
YP
Yuvaraj Palanisamy
Syncfusion Team
July 27, 2015 12:31 PM UTC
Hi Sajid,
Thanks for using Syncfusion Products.
we have created a support incident under your account to track the status of this issue.
Please log on to our support website to check for further updates.
https://www.syncfusion.com/account/login?ReturnUrl=%2fsupport%2fdirecttrac%2fincidents
Please let me know if you have any questions.
Thanks,
Yuvaraj
Thanks for using Syncfusion Products.
we have created a support incident under your account to track the status of this issue.
Please log on to our support website to check for further updates.
https://www.syncfusion.com/account/login?ReturnUrl=%2fsupport%2fdirecttrac%2fincidents
Please let me know if you have any questions.
Thanks,
Yuvaraj
SIGN IN To post a reply.
- 2 Replies
- 2 Participants
-
SA Sajid Ali
- Jul 24, 2015 11:00 AM UTC
- Jul 27, 2015 12:31 PM UTC