问题描述
我检查了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>
和后面的代码(data
是Dictionary<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; }
它看起来像:
如您所见,似乎只获得数组的第一个元素。
不知道为什么。如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)