【问题标题】:How to display the following result in WPF chart如何在 WPF 图表中显示以下结果
【发布时间】:2013-05-07 16:53:05
【问题描述】:

在我的 WPF 应用程序中,我有一个以下查询将所选日期范围显示为“日期”,并将每天处理的服务器总数显示为“金额”。

  var query_1 = 

  (this.db.Servers
  .Where(a => (a.Date >= fromDP.SelectedDate.Value && a.Date <= toDP.SelectedDate.Value)
   && ((a.ServerID == "ServerID1" || a.ServerID == "ServerID2") && a.Type == "Complete"))
  .GroupBy(a => EntityFunctions.TruncateTime(a.Date))
  .OrderBy(a => a.Key)
  .Select(g => new { Date = g.Key, Amount = g.Count() }))
  .ToList();

绑定到 ListBox 的 ItemsSource 时返回如下输出(只是为了检查查询是否正常工作)

现在如何将此结果、DateAmount 绑定到 WPF 图表 X 和 Y 轴。 (X 轴代表日期,Y 轴代表金额)。

图表可以是气泡系列/线系列或柱系列。

【问题讨论】:

  • 你需要一些图表控件来做到这一点。那里有一些商业的。我个人不知道任何支持数据绑定的免费解决方案。
  • 我目前使用WPF工具包图表控件。我的问题是如何将图1中的值绑定到图表控件

标签: c# wpf linq linq-to-sql linq-to-entities


【解决方案1】:

这篇博文可能有你需要的东西。

http://www.itdevspace.com/2010/09/wpf-toolkit-datagrid-chart-example.html

基本上,您将从您的 LINQ 查询中检索到的信息放入一个集合中,就像您拥有的列表一样(上面博客文章中的示例使用 ObservableCollection 可能用于通知目的),然后将 Chart ItemSource 属性放入集合中, IndependentValue 到日期,DependentValue 到金额。

<charting:LineSeries
    ItemsSource="{Binding Path=Data}"
    IndependentValueBinding="{Binding Date}"
    DependentValueBinding="{Binding Amount}"/>

我没有在匿名类型上尝试过这个,所以您可能需要更改您的查询逻辑以更明确。上面的 xaml 代码期望 DataContext 有一个名为 Data 的 Collection,其中包含具有属性 Date 和 Amount 的 Items。

【讨论】:

    【解决方案2】:

    我在 msdn 论坛中找到了解决方案。对于那些想在未来参考解决方案的人。

    http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/2c4fc325-83c1-4b07-b77a-bc7070c558f3/?prof=required

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 2017-06-28
      • 2021-04-11
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      相关资源
      最近更新 更多