hi, i have a problem in adding legend to my charts, im using charts for xamarin formskindly find my code below.
var chart = new RadCartesianChart
{
BindingContext = new DepartmentalViewModel()
};
DepartmentalViewModel model = null;
await Task.Run(() => { model = new DepartmentalViewModel(); });
var departments = model.Data.GroupBy(test => test.Detpartment).Select(grp => grp.First()).ToList();
foreach (var dept in departments)
{
Xamarin.Forms.ToolbarItem item = new Xamarin.Forms.ToolbarItem();
item.Text = dept.Detpartment;
item.Order = ToolbarItemOrder.Secondary;
item.Clicked += DeptFilter_Clicked;
this.ToolbarItems.Add(item);
}
ObservableCollection<
DepartmentalData
> FilteredData = new ObservableCollection<
DepartmentalData
>(model.Data.Where(m => m.Detpartment == "OT").OrderBy(m=>m.Year).ToList());
var TargetSeries = new BarSeries();
var ActualSeries = new LineSeries();
CategoricalAxis HorizontalAxis = new CategoricalAxis();
NumericalAxis VerticalAxis = new NumericalAxis();
HorizontalAxis.ShowLabels = true;
VerticalAxis.Minimum=0;
VerticalAxis.MajorStep = 5;
VerticalAxis.ShowLabels = true;
chart.VerticalAxis = VerticalAxis;
chart.HorizontalAxis = HorizontalAxis;
TargetSeries.ItemsSource = new ObservableCollection<
DepartmentalData
>();
ActualSeries.ItemsSource = new ObservableCollection<
DepartmentalData
>();
foreach (var item in FilteredData)
{
TargetSeries.ItemsSource.Add(item);
ActualSeries.ItemsSource.Add(item);
}
TargetSeries.ValueBinding = new PropertyNameDataPointBinding("Target");
TargetSeries.ShowLabels = true;
ActualSeries.ShowLabels = true;
ActualSeries.DisplayName = "Actual";
TargetSeries.DisplayName = "Target";
ActualSeries.ValueBinding = new PropertyNameDataPointBinding("Actual");
TargetSeries.CategoryBinding = new PropertyNameDataPointBinding("Year");
ActualSeries.CategoryBinding = new PropertyNameDataPointBinding("Year");
chart.Series.Add(TargetSeries);
chart.Series.Add(ActualSeries);
chart.Grid = new CartesianChartGrid();
chart.Grid.YStripeColor = Color.Black;
chart.Grid.YStripeAlternativeColor = Color.Black;
chart.Grid.MajorLineThickness = 5;
chart.Grid.MajorLineColor = Color.Black;
chart.Grid.MajorXLineDashArray = new double[] { 2, 3 };
var legend = new RadLegend
{
LegendProvider = chart,
HeightRequest = 200
//LegendItemFontColor = Color.DarkGreen,
//Orientation = LegendOrientation.Horizontal
};
ChartTooltipBehavior tooltip = new ChartTooltipBehavior();
tooltip.TriggerMode = ToolTipTriggerMode.Tap;
chart.Behaviors.Add(tooltip);
Content = chart;