private RadCartesianChartView createChart(){ //Create the Chart View RadCartesianChartView chart = new RadCartesianChartView(this.Activity); //Create the bar series and attach axes and value bindings. BarSeries barSeries = new BarSeries(); barSeries.ValueBinding = new ValueBinding(); barSeries.CategoryBinding = new CategoryBinding(); LinearAxis verticalAxis = new LinearAxis(); //The values in the linear axis will not have values after the decimal point. verticalAxis.LabelFormat = "%.0f"; CategoricalAxis horizontalAxis = new CategoricalAxis(); horizontalAxis.LabelFitMode = AxisLabelFitMode.MultiLine; barSeries.VerticalAxis = verticalAxis; barSeries.HorizontalAxis = horizontalAxis; //Bind series to data barSeries.Data = this.getData(); //Add series to chart chart.Series.Add(barSeries); ChartSelectionBehavior sb = new ChartSelectionBehavior(); sb.DataPointsSelectionMode = ChartSelectionMode.Single; chart.Behaviors.Add(sb); return chart; }
private static void RemoveAssociation(INotifyCollectionChanged collection, ChartSelectionBehavior behavior) { List <ChartSelectionBehavior> behaviors = GetOrCreateSelectionBehaviors(collection); behaviors.Remove(behavior); if (behaviors.Count == 0) { CleanUp(); } }
private static void SetItemsSelection(ChartSelectionBehavior behavior, IList items, bool shouldSelect) { foreach (var item in items) { var dataPoints = GetDataPointsForItem(item, behavior); foreach (var dataPoint in dataPoints) { dataPoint.IsSelected = shouldSelect; } } }
private static void SyncSelection(ChartSelectionBehavior behavior, IList oldItems, IList newItems) { if (oldItems != null) { SetItemsSelection(behavior, oldItems, false); } if (newItems != null) { SetItemsSelection(behavior, newItems, true); } }
private static IEnumerable <DataPoint> GetDataPointsForItem(object item, ChartSelectionBehavior behavior) { IEnumerable seriesCollection = GetSeries(behavior.Chart); foreach (ChartSeries series in seriesCollection) { var dataPoints = GetDataPoints(series); foreach (DataPoint dataPoint in dataPoints) { if (dataPoint.DataItem == item) { yield return(dataPoint); } } } }
private RadCartesianChartView createChart() { //Create the Chart View RadCartesianChartView chart = new RadCartesianChartView(this.Activity); //Create the bar series and attach axes and value bindings. BarSeries barSeries = new BarSeries(); barSeries.ValueBinding = new ValueBinding(); barSeries.CategoryBinding = new CategoryBinding(); LinearAxis verticalAxis = new LinearAxis(); //The values in the linear axis will not have values after the decimal point. verticalAxis.LabelFormat = "%.0f"; CategoricalAxis horizontalAxis = new CategoricalAxis(); horizontalAxis.LabelFitMode = AxisLabelFitMode.MultiLine; barSeries.VerticalAxis = verticalAxis; barSeries.HorizontalAxis = horizontalAxis; //Bind series to data barSeries.Data = this.getData(); //Add series to chart chart.Series.Add(barSeries); ChartSelectionBehavior sb = new ChartSelectionBehavior(); sb.DataPointsSelectionMode = ChartSelectionMode.Single; chart.Behaviors.Add(sb); return(chart); }
private static void AddAssociation(INotifyCollectionChanged collection, ChartSelectionBehavior behavior) { List <ChartSelectionBehavior> behaviors = GetOrCreateSelectionBehaviors(collection); behaviors.Add(behavior); }
public SelectionSeriesPage() { InitializeComponent(); var model = new MainViewModel(); model.Data1 = MainViewModel.GetCategoricalData(); model.Data2 = MainViewModel.GetCategoricalData(); var grid = new CartesianChartGrid(); var chart = new Telerik.XamarinForms.Chart.RadCartesianChart { VerticalAxis = new Telerik.XamarinForms.Chart.NumericalAxis(), HorizontalAxis = new Telerik.XamarinForms.Chart.CategoricalAxis() { LabelFitMode = Telerik.XamarinForms.Chart.AxisLabelFitMode.MultiLine }, Grid = grid, HeightRequest = 400 }; grid.MajorLinesVisibility = GridLineVisibility.Y; grid.MajorYLineDashArray = Device.OnPlatform(null, new double[] { 4, 2 }, new double[] { 4, 2 }); grid.StripLinesVisibility = GridLineVisibility.Y; grid.YStripeColor = Color.Transparent; grid.YStripeAlternativeColor = Color.FromHex("1FA9A9A9"); grid.MajorLineColor = Color.FromHex("D3D3D3"); grid.MajorLineThickness = Device.OnPlatform(0.5, 2, 2); var series = new Telerik.XamarinForms.Chart.BarSeries(); series.StackGroupKey = 1; series.CombineMode = Telerik.XamarinForms.Chart.ChartSeriesCombineMode.Stack; series.ItemsSource = model.Data1; series.ValueBinding = new Telerik.XamarinForms.Chart.PropertyNameDataPointBinding { PropertyName = "Value" }; series.CategoryBinding = new Telerik.XamarinForms.Chart.PropertyNameDataPointBinding { PropertyName = "Category" }; series.AllowSelect = true; chart.Series.Add(series); var series2 = new Telerik.XamarinForms.Chart.BarSeries(); series2.StackGroupKey = 1; series2.CombineMode = Telerik.XamarinForms.Chart.ChartSeriesCombineMode.Stack; series2.ItemsSource = model.Data2; series2.ValueBinding = new Telerik.XamarinForms.Chart.PropertyNameDataPointBinding { PropertyName = "Value" }; series2.CategoryBinding = new Telerik.XamarinForms.Chart.PropertyNameDataPointBinding { PropertyName = "Category" }; series2.AllowSelect = true; chart.PaletteName = PaletteNames.Light; chart.SelectionPaletteName = PaletteNames.LightSelected; chart.Series.Add(series2); beh = new Telerik.XamarinForms.Chart.ChartSelectionBehavior { DataPointSelectionMode = Telerik.XamarinForms.Chart.ChartSelectionMode.Single, SeriesSelectionMode = ChartSelectionMode.None }; chart.Behaviors.Add(beh); this.Content = chart; }
private static void RemoveAssociation(INotifyCollectionChanged collection, ChartSelectionBehavior behavior) { List<ChartSelectionBehavior> behaviors = GetOrCreateSelectionBehaviors(collection); behaviors.Remove(behavior); if (behaviors.Count == 0) { CleanUp(); } }
private static void AddAssociation(INotifyCollectionChanged collection, ChartSelectionBehavior behavior) { List<ChartSelectionBehavior> behaviors = GetOrCreateSelectionBehaviors(collection); behaviors.Add(behavior); }
private static IEnumerable<DataPoint> GetDataPointsForItem(object item, ChartSelectionBehavior behavior) { IEnumerable seriesCollection = GetSeries(behavior.Chart); foreach (ChartSeries series in seriesCollection) { var dataPoints = GetDataPoints(series); foreach (DataPoint dataPoint in dataPoints) { if (dataPoint.DataItem == item) { yield return dataPoint; } } } }