将集合绑定到WPF Toolkit图表

时间:2012-02-06 16:11:58

标签: wpf charts wpftoolkit

以下是我的目标:

  • 使用WPF工具包,创建一个简单的柱形图,其中包含线性Y轴和日期时间范围X轴。
  • 将对象集合绑定到图表。每个对象都有一个DateTime(X轴数据点)和Int32(Y轴数据点)属性。

以下是我目前的XAML。下面的XAML有我想要的轴,但是图表不会呈现任何数据:

 <chartingToolkit:Chart Grid.Column="1" Grid.Row="1" Grid.RowSpan="2" Name="ColumnChart" Title="Records Loaded By Date" 
    VerticalAlignment="Top" Height="262">
            <chartingToolkit:Chart.Axes>
                <chartingToolkit:DateTimeAxis  Interval="1" IntervalType="Days"  x:Name="myDateTimeAxis"
                        Orientation="X" Title="Date">
                    <chartingToolkit:DateTimeAxis.AxisLabelStyle>
                        <Style TargetType="chartingToolkit:DateTimeAxisLabel">
                            <Setter Property="StringFormat" Value="{}{0:MM/dd}"/>
                        </Style>
                    </chartingToolkit:DateTimeAxis.AxisLabelStyle>
                </chartingToolkit:DateTimeAxis>
                <chartingToolkit:LinearAxis Orientation="Y" ShowGridLines="True" x:Name="myYAxis"
                            Title="Transactions Loaded"/>
            </chartingToolkit:Chart.Axes>
            <chartingToolkit:Chart.Series>
                <chartingToolkit:ColumnSeries DependentValuePath="TransactionLoadCount" 
        IndependentValuePath="Date" ItemsSource="{Binding Path=LoadStats}" 
        IsSelectionEnabled="True">
                </chartingToolkit:ColumnSeries>
            </chartingToolkit:Chart.Series>
        </chartingToolkit:Chart>

注意:当我删除XML部分<chartingToolkit:Chart.Axes>...</chartingToolkit:Chart.Axes>时,数据将显示但不是我喜欢的格式。

为什么图表不会呈现我的收藏数据?

1 个答案:

答案 0 :(得分:0)

既然你想出来并将其发布在评论中,我会扩展其他事情,以便在出现此问题时查找。 请来到这里的读者注意,问题是绑定到控件的列表需要包含&gt; 1集合中的DateTime以显示图表。这是WPF Toolkit库中的一个错误。这可以在WPF Toolkit的当前/未来版本中修复。

如果这不能解决您的问题:

  1. 在加载控件时,观察输出窗口是否存在任何绑定表达式错误。如果图表的数据上下文设置正确,则将项目源绑定到不可用的集合将导致问题。
  2. 确保要在DateTime轴上使用的DateTime值具有跨越至少2天的值,或者为您设置的间隔设置的值。如果适用,请尝试设置最大值或最小值。
  3. 使用消除过程确定其X轴或Y轴是否导致问题。注释X轴XAML并查看控件是否正确显示Y轴。如果是这样,请注释掉Y轴并取消注释X轴XAML并查看它是否正确显示。如果不是,你知道你的问题是其中一个轴(没有注释掉)。
  4. 检查您的StringFormat是否正确。在这里,我相信你可以使用`Value =“MM / dd”
  5. 确保正确拼写了IndependentValuePathDependentValuePath的属性。
  6. 我发现这些是图表体验中最大的问题所以这是调试问题时要遵循的清单。希望这将回答许多一般性问题。如果它不足以作为答案,你应该自己回答OP。