Reputation: 20545
I want to be able to create charts dynamically for this I created the following class with a method called getChart()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls.DataVisualization.Charting;
namespace Henvendelser
{
class ChartDataCreator
{
private Dictionary<String, List<ContactQueue>> dataList;
public ChartDataCreator() {
}
public Chart getChart(String choice) {
Chart c = new Chart();
LineSeries ls = new LineSeries();
ls.IndependentValueBinding="{Binding Path=Key}";
ls.DependentValueBinding="{Binding Path=Value}";
ls.ItemsSource =
new KeyValuePair<int, int>[]{
new KeyValuePair<int,int>(1, 12),
new KeyValuePair<int,int>(2, 25),
new KeyValuePair<int,int>(3, 5),
new KeyValuePair<int,int>(4, 6),
new KeyValuePair<int,int>(5, 10),
new KeyValuePair<int,int>(6, 4),
new KeyValuePair<int,int>(7, 40),
new KeyValuePair<int,int>(8, 12),
new KeyValuePair<int,int>(9, 25),
new KeyValuePair<int,int>(10, 5),
new KeyValuePair<int,int>(11, 6),
new KeyValuePair<int,int>(12, 10),
new KeyValuePair<int,int>(13, 4),
new KeyValuePair<int,int>(14, 8),
new KeyValuePair<int,int>(15, 9),
new KeyValuePair<int,int>(16, 50),
new KeyValuePair<int,int>(17, 40) };
c.Series.Add(ls);
return c;
}
}
}
Now as you can see my code has an error the:
ls.IndependentValueBinding="{Binding Path=Key}";
ls.DependentValueBinding="{Binding Path=Value}";
My question how do you set the independent and dependent binding dynamically. Also please point out if there is something else I'm missing in order to make it work.
Upvotes: 1
Views: 350
Reputation: 1600
Try this, they are looking for Binding Objects so thats what you have to provide it.
Chart c = new Chart();
LineSeries ls = new LineSeries();
// For new binding you provide it the string path to your property.
Binding bindInd = new Binding("Key");
Binding bindDep = new Binding("Value");
// then you can set the properties of your binding like so
bindInd.Source = <your source>;
bindDep.Source = <Your Source>;
bindDep.Mode = BindingMode.OneWay;
bindInd.Mode = BindingMode.OneWay;
ls.IndependentValueBinding = bindInd;
ls.DependentValueBinding =bindDep;
Upvotes: 1