在我的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时返回输出如下(只是为了检查查询是否正常工作)
现在,如何将此结果日期和金额绑定到WPF图表X和Y轴。 (日期的X轴和金额的Y轴)。
图表可以是Bubble Series / Line Series或Column series。
答案 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论坛中找到了解决方案。对于那些希望将来参考解决方案的人。
希望这会有所帮助。