C# 以编程方式创建ColumnSeries WPF工具包图表
我试图以编程方式将列系列添加到wpf工具包图表中。我的xaml是一个空图表。该代码导致未处理的异常,对象引用未设置为对象的实例。有什么线索可以解释为什么这不起作用吗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
<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将正确显示图表
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将正确显示图表