如何克服在 SyncFusion Xamarin Chart 中定义 ItemsSource 时的错误?

How to overcome error in defining ItemsSource in SyncFusion Xamarin Chart?

我正在尝试使用简单的 SyncFusion 图表进行概念验证。我定义了一个非常简单的图表,以及一个非常简单的数据列表,我只想将它绑定到图表。

但是,当我使用列表名称 ("SalesData") 定义图表的 ItemsSource 属性 时,当前上下文无法识别该列表。一定有一些简单的东西我遗漏了,但我已经尝试了我能想到的每一种变体,但我似乎找不到它。

当我尝试在我的代码示例中定义 ItemsSource 时,Visual Studio 的代码建议提供了 class SaleInfo 或 SalesViewModel,但我无法向下钻取并选择 SalesData 列表本身。

我正在尝试让它工作,以便我可以用可以解析 JSON 数据的代码替换 SalesViewModel。非常感谢任何建议。

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Syncfusion.SfChart.XForms;
using Xamarin.Forms;

namespace JunkChartTest
{
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();


            SfChart chart = new SfChart();

            //Initializing Primary Axis
            CategoryAxis primaryAxis = new CategoryAxis();
            chart.PrimaryAxis = primaryAxis;

            //Initializing Secondary Axis
            NumericalAxis secondaryAxis = new NumericalAxis();
            chart.SecondaryAxis = secondaryAxis;

            chart.Title.Text = "This is my Test";

            chart.Series.Add(new ColumnSeries()
            {
                ItemsSource = SalesData,
                XBindingPath = "Year",
                YBindingPath = "Target"
            });

            this.Content = chart;
        }



        public class SaleInfo
        {
            public string Year { get; set; }
            public double Target { get; set; }
            public double Sale { get; set; }
        }

        public class SalesViewModel
        {

            public List<SaleInfo> SalesData { get; set; }

            public SalesViewModel()
            {
                SalesData = new List<SaleInfo>();

                SalesData.Add(new SaleInfo { Year = "2014", Target = 500, Sale = 342 });
                SalesData.Add(new SaleInfo { Year = "2015", Target = 520, Sale = 393 });
                SalesData.Add(new SaleInfo { Year = "2016", Target = 560, Sale = 431 });
                SalesData.Add(new SaleInfo { Year = "2017", Target = 600, Sale = 520 });
                SalesData.Add(new SaleInfo { Year = "2018", Target = 620, Sale = 578 });
                SalesData.Add(new SaleInfo { Year = "2019", Target = 680, Sale = 900 });
            }
        }
    }
}

SalesDataSalesViewModel 的 属性,因此您必须先创建 ViewModel 的实例

var viewModel = new SalesViewModel();

chart.Series.Add(new ColumnSeries()
            {
                ItemsSource = viewModel.SalesData,
                XBindingPath = "Year",
                YBindingPath = "Target"
            });