如何在WPF图表中显示以下结果

时间:2013-05-06 07:24:57

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

在我的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时返回输出如下(只是为了检查查询是否正常工作)

Result

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

图表可以是Bubble Series / Line Series或Column series。

2 个答案:

答案 0 :(得分: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,其中包含具有Properties Date和Amount的Items。

答案 1 :(得分:0)

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

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

希望这会有所帮助。