将一个集合绑定到 WPF 工具包图表

3

以下是我的目标:

  • 使用WPF工具包创建一个简单的柱状图,其中Y轴为线性轴,X轴为DateTime范围轴。
  • 将对象集合绑定到图表。每个对象都有一个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个元素的集合进行测试。 - Josh
我从未使用过WPF的图表控件,但最终我很可能会用到。请告诉我这个问题的进展情况。 - Jake Berger
1
@jberger - 我遇到的是Toolkit中的一个bug。这个bug是:如果我的集合中只有1个元素,那么图表将不会呈现任何数据。当我的集合包含> 1个元素时,控件会按预期呈现。所以我猜解决方法是确保你的集合有多个元素。祝好运! - Josh
也许设置间隔/间隔类型可能会导致这种意外行为。无论如何,您应该编写一个答案来解决问题,以便标记为已解决。 - Kcvin
1个回答

0

既然你已经在评论中找到了解决方法,我将扩展其他需要注意的问题。 请注意,问题是控件绑定的列表需要包含集合中的 > 1 个日期时间才能显示图表。这是 WPF Toolkit 库中的错误。 这可能会在当前/未来版本的 WPF Toolkit 中得到修复。

如果这没有解决您的问题:

  1. 当控件加载时,请注意输出窗口是否有任何绑定表达式错误。如果图表的数据上下文设置正确,将项源绑定到不可用的集合将会导致问题。
  2. 确保要在日期时间轴上使用的日期时间值跨越至少2天,或者您设置的间隔。如果适用,尝试设置最大或最小值。
  3. 使用排除法确定是X轴还是Y轴引起了问题。注释掉X轴XAML并查看控件是否正确显示Y轴。如果是这样,请注释掉Y轴并取消注释X轴XAML,然后查看它是否正确显示。如果没有,则知道问题出现在其中一个轴上(未被注释掉的轴)。
  4. 检查您的StringFormat是否正确。在这里,我认为您可以只使用`Value="MM/dd"`。
  5. 确保您正确拼写了IndependentValuePathDependentValuePath的属性。

我发现这些是制作图表过程中最大的问题,因此这是调试问题时要遵循的检查清单。希望这能回答许多一般性的问题。如果这不足以作为答案,您应该自己回答。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接