使用LiveCharts和WPF Core在折线图中显示所有标签

问题描述

我检查了Livecharts not displaying Label on x axis in WPF

但这对我解决问题没有帮助。

XAML部分:

<wpf:CartesianChart Series="{Binding LineItems}" LegendLocation="None" DataClick="Series_DataClick" ToolTip="{x:Null}" DataTooltip="{x:Null}" Visibility="{Binding IsChartVisible,Converter={StaticResource BooleanToVisibilityConverter}}">
  <wpf:CartesianChart.AxisX>
    <wpf:Axis Title="Years" Labels="{Binding LineLabels}">
      <wpf:Axis.Separator>
        <wpf:Separator Step="1"/>
      </wpf:Axis.Separator>
    </wpf:Axis>
  </wpf:CartesianChart.AxisX>
  <wpf:CartesianChart.AxisY>
    <wpf:Axis Title="Number of movies" LabelFormatter="{Binding Formatter}"/>
  </wpf:CartesianChart.AxisY>
</wpf:CartesianChart>

和后面的代码dataDictionary<string,List<string>>

  ContentRendered += (s,ev) =>
  {
    foreach (var item in data)
    {
      ISeriesView lineseries = new ColumnSeries
      {
        Title = item.Key,Values = new ChartValues<double>(new[] { (double)item.Value.Count }),DataLabels = true,Tag = item.Value,ToolTip = null
      };

      LineItems.Add(lineseries);
    }

    LineLabels = data.Select(s => s.Key).ToArray(); // here is 45 items in array,but on UI is set only first element
  };


public SeriesCollection LineItems { get; }
public string[] LineLabels { get; private set; }
public Func<double,string> Formatter { get; set; }

它看起来像:

enter image description here

如您所见,似乎只获得数组的第一个元素。

不知道为什么。如何解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)