Я тоже пришел к этой проблеме, после того как я обновил свое приложение с .NET FRAMEWORK 3.5 до 4.0, внезапно класс диаграммы перестал работать.
Когда я вызвал метод Show () в форме, в которой была диаграмма с динамическими сериями столбцов, вместо отображения нового окна всплыла эта ошибка: ссылка на объект не установлена для экземпляра объекта.
Если я удаляю ссылку источника ресурсов на Словарь или изменяю динамическую серию столбцов на статическую версию XAML, она работает, но эта статическая версия непригодна для большинства пользователей.
у кого-нибудь есть идеи, как реализовать это непосредственно в WPF .NET Framework 4.0? или его ошибка в wpftoolkit, предназначенная для .NET 3.5?
public void SetChartData(IDictionary<string, IDictionary<string, double>> prod, String title, String labelAxis)
{
chart.Title = title;
LinearAxis ca = new LinearAxis();
ca.Orientation = AxisOrientation.Y;
ca.Minimum = 0;
chart.Axes.Add(ca);
foreach (KeyValuePair<string, IDictionary<string, double>> kvp in prod)
{
ColumnSeries cser = new ColumnSeries();
cser.Title = kvp.Key;
cser.DependentValueBinding = new Binding("Value");
cser.IndependentValueBinding = new Binding("Key");
cser.ItemsSource = kvp.Value;
chart.Series.Add(cser);
}
}
Я нашел один возможный обходной путь:
- создать новую библиотеку проектов WPF для ex. MyChart, создайте класс, который будет возвращать окно WPF с диаграммой внутри.
- setup и скомпилируйте проект библиотеки диаграмм как .NET Framework 3.5 (клиент)
- вызов MyChartClass.Show (); внутри основной программы .NET Framework 4.0 будет правильно отображать график