Я получил компонент из магазина компонентов Xamarin, и мне удалось создать линейную и гистограмму, но возникли небольшие трудности с круговой диаграммой.
Код для круговой диаграммы:
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
var view = NativeView;
var graph = new CPTXYGraph
{
Title = "Pie Chart",
TitleTextStyle = new CPTMutableTextStyle
{
FontSize = 50,
Color = CPTColor.GreenColor,
},
};
var plotSpace = (CPTXYPlotSpace)graph.DefaultPlotSpace;
plotSpace.AllowsUserInteraction = true;
graph.ApplyTheme(CPTTheme.ThemeNamed((NSString)"Plain Black"));
graph.PlotAreaFrame.BorderLineStyle.LineColor = CPTColor.BlackColor;
var plot = new CPTPieChart
{
DataSource = new PiePlotDataSource()
};
graph.AddPlot(plot);
view.AddSubview(new CPTGraphHostingView
{
HostedGraph = graph
});
}
Код для источника данных:
class PiePlotDataSource : CPTPieChartDataSource
{
public override int NumberOfRecordsForPlot(CPTPlot plot)
{
return DummyData.Data.Length;
}
public override NSNumber NumberForPlot(CPTPlot plot, CPTPlotField forFieldEnum, uint index)
{
return forFieldEnum == CPTPlotField.PieChartWidth ? DummyData.Data[index] : index;
}
}
Все, что я получаю, это просто белый пустой экран с неуместным заголовком, который нельзя масштабировать или прокручивать (извиняюсь за большое изображение, я не знаю, как изменить его размер):
Линейные и гистограммы реализованы аналогичным образом и работают нормально. Я поставил точки останова и проверил, не останавливался ли он где-либо в коде, но выполнение также работало нормально.
Однако он не делает то, что методы PiePlotDataSource
не вызываются. Я убедился, что они вызываются на линейных и гистограммах, но по какой-то причине они не вызываются здесь.
Мне потребовалось несколько дней, чтобы просто получить несколько общих графиков, работающих для Android и iOS, из-за очень небольшого количества документации. Это последняя диаграмма, которую мне нужно сделать, поэтому я буду очень признателен за любую помощь.