You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:20:22