我正在努力弄清楚为什么我对多系列列图的绑定不起作用。从我通过网络上看到的例子看,我无法看到我正在做的事情的逻辑问题,但也许我错过了一些东西。据我所知,它得到了支持。
这是我的图表控件:
<toolkit:Chart x:Name="myChart" Margin="10">
<toolkit:ColumnSeries
Title="Orion"
IndependentValueBinding="{Binding Date}"
DependentValueBinding="{Binding Orion}"
AnimationSequence="FirstToLast">
</toolkit:ColumnSeries>
<toolkit:ColumnSeries
Title="Access Card"
IndependentValueBinding="{Binding Date}"
DependentValueBinding="{Binding AccessCard}"
AnimationSequence="FirstToLast">
</toolkit:ColumnSeries>
<toolkit:ColumnSeries
Title="Time Keeper"
IndependentValueBinding="{Binding Date}"
DependentValueBinding="{Binding TimeKeeper}"
AnimationSequence="FirstToLast">
</toolkit:ColumnSeries>
</toolkit:Chart>
这是我试图实现的一些测试代码:
private void OrionWebService_ChartComilerCompleted(object sender, ChartCompilerCompletedEventArgs e)
{
List<ChartClass> mytest = new List<ChartClass>();
mytest.Add(new ChartClass
{
Date = Convert.ToDateTime("01/01/2013 12:00:00 PM"),
Orion = 3.0,
AccessCard = 4.0,
TimeKeeper = 6.0
});
mytest.Add(new ChartClass
{
Date = Convert.ToDateTime("01/02/2013 12:00:00 PM"),
Orion = 6.0,
AccessCard = 4.0,
TimeKeeper = 8.0
});
((ColumnSeries)myChart.Series[0]).ItemsSource = mytest;
BusyIndicator.IsBusy = false;
}
ChartClass
public class ChartClass
{
public DateTime Date { get; set; }
public double Orion { get; set; }
public double AccessCard { get; set; }
public double TimeKeeper { get; set; }
}
现在我只是传递一些测试数据,最终虽然我正在尝试为日期范围内的每一天创建一个有3个垂直列的图表。与下图类似:
出于某种原因,虽然当控件加载时,除了一个Labeled Orion之外,它没有填充任何列的任何数据。如果我从xaml中删除Orion系列并仅定义TimeKeeper和AccessCard,那么TimeKeeper系列可以工作,但不会显示AccessCard数据。它似乎只绑定到第一个定义的系列,并忽略对图表中所有其他系列的绑定。 silverlight工具包不支持我正在尝试做的事情吗?
有人可以帮助我吗?或者至少指出一个例子的方向。我似乎无法发现我所做的事情。
提前致谢。
答案 0 :(得分:0)
道歉,我发现问题是由Code引起的,因为我只定义了series [0]的项目源而不是其他的。使用以下代码解决了问题:
((ColumnSeries)myChart.Series[0]).ItemsSource = mytest;
((ColumnSeries)myChart.Series[1]).ItemsSource = mytest;
((ColumnSeries)myChart.Series[2]).ItemsSource = mytest;
不漂亮,但我的图表现在正常运作