我遇到了一个烦人的问题:我有一个简单的Chart,其中包含一个ColumnSeries和两个轴(一个LinearAxis用于依赖值,一个DateTimeAxis用于独立的一个)。 我的ColumnSeries的ItemsSource绑定到DataPoint实例的集合(只有3个属性的简单类:Date,IndependentValue和DependentValue)。 如果Collection中有2个或更多项,则Chart会正确显示列; 但如果它只有一个,则不会显示任何列。
有关正在发生的事情的任何想法?
这是XAML(为简洁起见,省略了标准和WPF Toolkit的命名空间):
<Window x:Class="Demo.MainWindow" (...) xmlns:local="clr-namespace:Demo">
<Grid>
<Grid.Resources>
<local:DataPointCollection x:Key="DataPointCollection" />
</Grid.Resources>
<ct:Chart Title="Demo">
<ct:ColumnSeries Title="A"
ItemsSource="{StaticResource DataPointCollection}"
IndependentValueBinding="{Binding Date}"
DependentValueBinding="{Binding DependentValue}" />
<ct:Chart.Axes>
<ct:LinearAxis Orientation="Y"
ShowGridLines="True"
Title="Dependent Title" />
<ct:DateTimeAxis Orientation=X"
ShowGridLines="True"
Interval="1"
IntervalType="Days" />
</ct:Chart.Axes>
</ct:Chart>
</Grid>
</Window>
DataPointCollection类:
using System;
namespace Demo
{
using System.Collections.ObjectModel;
public class DataPointCollection: Collection<DataPoint>
{
public DataPointCollection()
{
Add(new DataPoint { Date = DateTime.Now.Date, DependentValue = 5 });
// Comment next line to see an empty chart:
Add(new DataPoint { Date = DateTime.Now.Date.AddDays(1), DependentValue = 6 });
}
}
}
DataPoint类:
using System;
namespace Demo
{
public class DataPoint
{
public DateTime Date { get; set; }
public double DependentValue { get; set; }
}
}
该项目是常规WPF应用程序(WPF 4)。
提前致谢。
答案 0 :(得分:0)
浏览ColumnSeries
的源代码显示列宽与数据范围相关,在您的情况下为零。除非您想修复工具包中的错误,否则我建议的唯一解决方法是用虚拟点围绕您的单点,使其看起来只显示一列:
var now = DateTime.Now;
Add(new DataPoint { Date = now, DependentValue = 5 });
Add(new DataPoint { Date = now + TimeSpan.FromDays(1), DependentValue = 0 });
Add(new DataPoint { Date = now - TimeSpan.FromDays(1), DependentValue = 0 });