Я пытаюсь создать диаграмму, используя представление данных, которое возвращается из таблицы набора данных. Я создал объект поставщика данных на C#, который использует набор данных и адаптер таблицы, созданные с помощью мастера источников данных. Объект поставщика данных имеет метод, который возвращает представление по умолчанию для таблицы после ее заполнения.
Часть извлечения данных работает нормально, я могу видеть данные, если привязываю к ней сетку данных. Мой вопрос: как мне связать представление данных с гистограммой (или любой диаграммой)? Мои независимые данные представляют собой текстовый столбец в представлении данных, а зависимые данные представляют собой числовое значение. Когда я запускаю этот код, я получаю ошибку времени выполнения, подобную этой:
Установка свойства «System.Windows.Controls.DataVisualization.Charting.DataPointSeries.DependentValueBinding» вызвала исключение». Номер строки «17» и позиция строки «18».
Что я делаю не так?
<Window xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" xmlns:my="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" x:Class="GraphingTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:GraphingTest"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ObjectDataProvider ObjectType="{x:Type local:CustomDataProvider}" x:Key="odp1">
</ObjectDataProvider>
<ObjectDataProvider ObjectInstance="{StaticResource odp1}" MethodName="GetQualitativeData" x:Key="odp2">
</ObjectDataProvider>
</Window.Resources>
<ScrollViewer>
<StackPanel DataContext="{Binding Source={StaticResource odp2}}">
<chartingToolkit:Chart >
<chartingToolkit:ColumnSeries DependentValueBinding="MyNumberValue" IndependentValueBinding="MyTextLabel" ItemsSource="{Binding}">
</chartingToolkit:ColumnSeries>
</chartingToolkit:Chart>
</StackPanel>
</ScrollViewer>
</Window>
Вот мой объект поставщика данных С#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using GraphingTest.MyDataSetTableAdapters;
namespace GraphingTest
{
public class CustomDataProvider
{
// construct the dataset
MyDataSet dataset;
MyDataTableAdapter adapter;
public CustomDataProvider()
{
dataset = new MyDataSet();
adapter = new MyDataTableAdapter();
// use a table adapter to populate the Customers table
adapter.Fill(dataset.MyData);
}
public DataView GetQualitativeData()
{
// use the Customer table as the DataContext for this Window
var x= dataset.MyData.DefaultView;
return x;
}
}
}