C# 以编程方式创建ColumnSeries WPF工具包图表

C# 以编程方式创建ColumnSeries WPF工具包图表,c#,wpf,wpftoolkit,C#,Wpf,Wpftoolkit,我试图以编程方式将列系列添加到wpf工具包图表中。我的xaml是一个空图表。该代码导致未处理的异常,对象引用未设置为对象的实例。有什么线索可以解释为什么这不起作用吗 <charting:Chart Name="MyChart"> 我的密码是 List<KeyValuePair<int,int>> testList = new List<KeyValuePair<int,int>>(); testList.Add(new KeyV

我试图以编程方式将列系列添加到wpf工具包图表中。我的xaml是一个空图表。该代码导致未处理的异常,对象引用未设置为对象的实例。有什么线索可以解释为什么这不起作用吗

<charting:Chart Name="MyChart">

我的密码是

List<KeyValuePair<int,int>> testList = new List<KeyValuePair<int,int>>();

testList.Add(new KeyValuePair<int,int> (1,2));

testList.Add(new KeyValuePair<int,int> (2,3)); 

ColumnSeries mySeries = new ColumnSeries();

mySeries.Title = "TEST";


mySeries.IndependentValueBinding = new Binding("key");

mySeries.DependentValueBinding = new Binding("value");

mySeries.ItemsSource = testList;

MyChart.Series.Add(mySeries);
List testList=newlist();
添加(新的KeyValuePair(1,2));
添加(新的KeyValuePair(2,3));
ColumnSeries mySeries=新ColumnSeries();
Title=“TEST”;
mySeries.IndependentValueBinding=新绑定(“键”);
mySeries.DependentValueBinding=新绑定(“值”);
mySeries.ItemsSource=testList;
MyChart.Series.Add(mySeries);

您应该在绑定中使用“键”而不是“键”,使用“值”而不是“值”。

您应该在绑定中使用“键”而不是“键”,使用“值”而不是“值”。

我也遇到了这个问题,在我将应用程序从.NET FRAMEWORK 3.5升级到4.0后,图表类突然停止工作。 当我在具有动态columnseries图表的窗体上调用Show()方法,而不是显示新窗口时,出现了以下错误:对象引用未设置为对象的实例。 如果我删除了指向Dictionary的itemsource链接,或者将DynamicColumnSeries更改为静态XAML版本,它仍然可以工作,但是对于大多数用户来说,这个静态版本是不可用的

有人知道如何在WPF.NETFramework4.0中直接实现这一点吗?还是针对.NET3.5的wpftoolkit中的bug

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);
           }
        }
public void SetChartData(IDictionary prod、字符串标题、字符串标签)
{   
图表标题=标题;
LinearAxis ca=新的LinearAxis();
ca.方向=轴方向.Y;
ca.最小值=0;
图.轴.加(ca);
foreach(产品中的KeyValuePair kvp)
{
ColumnSeries cser=新ColumnSeries();
cser.Title=kvp.Key;
cser.DependentValueBinding=新绑定(“值”);
cser.IndependentValueBinding=新绑定(“键”);
cser.ItemsSource=kvp.Value;
图表系列添加(cser);
}
}
我找到了一个可能的解决方法:

  • 创建新的WPF项目库对于ex.MyChart,创建一个类,该类将返回包含图表的WPF窗口
  • 设置并将图表库项目编译为.NET Framework 3.5(客户端)
  • 调用MyChartClass.Show();在主程序内部.NET Framework 4.0将正确显示图表

我也遇到了这个问题,在我将应用程序从.NET FRAMEWORK 3.5升级到4.0之后,chart类突然停止工作。 当我在具有动态columnseries图表的窗体上调用Show()方法,而不是显示新窗口时,出现了以下错误:对象引用未设置为对象的实例。 如果我删除了指向Dictionary的itemsource链接,或者将DynamicColumnSeries更改为静态XAML版本,它仍然可以工作,但是对于大多数用户来说,这个静态版本是不可用的

有人知道如何在WPF.NETFramework4.0中直接实现这一点吗?还是针对.NET3.5的wpftoolkit中的bug

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);
           }
        }
public void SetChartData(IDictionary prod、字符串标题、字符串标签)
{   
图表标题=标题;
LinearAxis ca=新的LinearAxis();
ca.方向=轴方向.Y;
ca.最小值=0;
图.轴.加(ca);
foreach(产品中的KeyValuePair kvp)
{
ColumnSeries cser=新ColumnSeries();
cser.Title=kvp.Key;
cser.DependentValueBinding=新绑定(“值”);
cser.IndependentValueBinding=新绑定(“键”);
cser.ItemsSource=kvp.Value;
图表系列添加(cser);
}
}
我找到了一个可能的解决方法:

  • 创建新的WPF项目库对于ex.MyChart,创建一个类,该类将返回包含图表的WPF窗口
  • 设置并将图表库项目编译为.NET Framework 3.5(客户端)
  • 调用MyChartClass.Show();在主程序内部.NET Framework 4.0将正确显示图表