Xamarin中MicroCharts绑定失败求助:图表无法显示
问题:MicroCharts绑定失败,图表无法显示
按照教程尝试用MicroCharts制作图表,完全遵循步骤后模拟器里的图表仍无法显示,XAML提示“找不到绑定'LineChart'的DataContext”,推测问题出在绑定环节。
ViewModelBase 代码
namespace MicroChartBinding.ViewModels { public class ViewModelBase : BindableBase, IInitialize, INavigationAware, IDestructible { protected INavigationService NavigationService { get; private set; } private string _title; public string Title { get { return _title; } set { SetProperty(ref _title, value); } } public ViewModelBase(INavigationService navigationService) { NavigationService = navigationService; } public virtual void Initialize(INavigationParameters parameters) { } public virtual void OnNavigatedFrom(INavigationParameters parameters) { } public virtual void OnNavigatedTo(INavigationParameters parameters) { } public virtual void Destroy() { } } }
MainPageViewModel 代码
namespace MicroChartBinding.ViewModels { class MainPageViewModel : ViewModelBase { private LineChart lineChart; public LineChart LineChart { get => lineChart; set => SetProperty(ref lineChart, value); } private string[] months = new string[] { "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" }; private float[] turnoverData = new float[] { 6010, 1000, 2524, 3245, 1245, 5767, 5544, 5242, 500, 1555, 400, 100 }; private SKColor blueColor = SKColor.Parse("#09C"); public MainPageViewModel(INavigationService navigationService) : base(navigationService) { Title = "Main Page"; } public override void Initialize(INavigationParameters parameters) { base.Initialize(parameters); InitData(); } private void InitData() { var turnoverEntries = new List<ChartEntry>(); foreach (var data in turnoverData) { turnoverEntries.Add(new ChartEntry(data) { Color = blueColor, ValueLabel = $"{data / 1000} k", Label = "trnover" }); } LineChart = new LineChart { Entries = turnoverEntries, LabelTextSize = 30f, LabelOrientation = Orientation.Horizontal }; } } }
MainPage XAML 代码
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:Charts="clr-namespace:Microcharts.Forms;assembly=Microcharts.Forms" x:Class="MicroChartBinding.MainPage" Title="{Binding Title}"> <Grid RowDefinitions="300,300,300"> <Charts:ChartView Chart ="{Binding LineChart}" HeightRequest="300" VerticalOptions="Start" HorizontalOptions="Fill"/> </Grid> </ContentPage>
内容的提问来源于stack exchange,提问作者Krink
相关产品推荐
相关产品推荐

