Хорошо, так что я просто практикую то, что, вероятно, очень простой материал с диаграммами в wpf.Я довольно новичок в linq и wpf, поэтому заранее прошу прощения, если это глупый вопрос.У меня есть запрос LINQ to entity, возвращающий все столбцы, я хочу выбрать два из столбцов (Month (string), Points (int)), бросить их в словарь и затем привязать их к моему графику ..
Вот мой XAML ::
<Window x:Class="Chart.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DVC:Chart Name="testchart" Title="Statistics" Width="500" Height="300" LegendTitle="Stats">
<DVC:Chart.Series>
<DVC:BarSeries Title="Points"
IndependentValueBinding=""
DependentValueBinding="">
</DVC:BarSeries>
</DVC:Chart.Series>
</DVC:Chart>
</Grid>
А вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Controls.DataVisualization.Charting;
namespace Chart
{
public partial class MainWindow : Window
{
Dictionary<string, int> _data = new Dictionary<string, int>();
public MainWindow()
{
InitializeComponent();
using (CE ctx = new CE())
{
var query = (from r in ctx.ChartOnes
select r).ToDictionary(k => k.Month);
}
}
}
}
Спасибо Dessus за ваш своевременный ответ!Я поиграю с вашими предложениями сегодня.Вчера я получил некоторую помощь от коллеги, и он смог показать мне, как заставить его работать.Вот отредактированные фрагменты кода:
<DVC:Chart Name="testchart" Title="Statistics" Width="500" Height="300" LegendTitle="Stats">
<DVC:Chart.Series>
<DVC:ColumnSeries Title="Points"
IndependentValueBinding="{Binding Path=Key}"
DependentValueBinding="{Binding Path=Value.Points}">
</DVC:ColumnSeries>
</DVC:Chart.Series>
</DVC:Chart>
и выделенный код:
private void LoadBarChartData()
{
CE ctx = new CE();
var query = (from r in ctx.ChartOnes
select new { Points = r.Points, Month = r.Month }).ToDictionary(k => k.Month);
((ColumnSeries)testchart.Series[0]).ItemsSource = query;
}