private static void OnSelectionStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ChartSelectionBehavior behavior = d as ChartSelectionBehavior; SfChart chartBase = behavior.ChartArea; // WPF-26121, When selection style is changed the last selected segment remains selected if (chartBase == null || chartBase.Series == null) { return; } chartBase.SeriesSelectedIndex = -1; foreach (ChartSeries series in chartBase.Series) { var segmentSelectableSeries = series as ISegmentSelectable; if (segmentSelectableSeries != null) { segmentSelectableSeries.SelectedIndex = -1; } if (chartBase.SelectedSeriesCollection.Contains(series) && chartBase.SeriesSelectedIndex != chartBase.Series.IndexOf(series)) { chartBase.SelectedSeriesCollection.Remove(series); chartBase.OnResetSeries(series); } // Need to revisit the code. for (int i = 0; i < series.ActualData.Count; i++) { if (series.SelectedSegmentsIndexes.Contains(i)) { series.SelectedSegmentsIndexes.Remove(i); series.OnResetSegment(i); } } } }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.multipleDoughnutChart2 = ((Syncfusion.UI.Xaml.Charts.SfChart)(target)); return; case 2: this.selection = ((Syncfusion.UI.Xaml.Charts.ChartSelectionBehavior)(target)); return; case 3: this.doughnutSeries = ((Syncfusion.UI.Xaml.Charts.DoughnutSeries)(target)); return; case 4: this.dLegend = ((System.Windows.Controls.ItemsControl)(target)); return; } this._contentLoaded = true; }