如何克服在 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 });
}
}
}
}
SalesData
是 SalesViewModel
的 属性,因此您必须先创建 ViewModel 的实例
var viewModel = new SalesViewModel();
chart.Series.Add(new ColumnSeries()
{
ItemsSource = viewModel.SalesData,
XBindingPath = "Year",
YBindingPath = "Target"
});
我正在尝试使用简单的 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 });
}
}
}
}
SalesData
是 SalesViewModel
的 属性,因此您必须先创建 ViewModel 的实例
var viewModel = new SalesViewModel();
chart.Series.Add(new ColumnSeries()
{
ItemsSource = viewModel.SalesData,
XBindingPath = "Year",
YBindingPath = "Target"
});