Взех компонента от Xamarin Component Store и успешно успях да направя линейна и стълбовидна диаграма, но имах малко затруднения с кръгова диаграма.
Код за кръгова диаграма:
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 поради толкова малко документация. Това е последната диаграма, която трябва да направя, така че ще съм много благодарен за всяка помощ.