Найден еще лучший способ использования преобразователей значений:
П.С .: Я получал исключения, потому что объекты, хранящиеся в таблице, были преобразованы в строки по умолчанию. Диаграмма нуждалась число ... Поэтому я написал ValueConverter и все заработало.
// create a very simple DataSet
var dataSet = new DataSet("MyDataSet");
var table = dataSet.Tables.Add("MyTable");
table.Columns.Add("Name");
table.Columns.Add("Price");
table.Rows.Add("Brick", 1.5d);
table.Rows.Add("Soap", 4.99d);
table.Rows.Add("Comic Book", 0.99d);
table.Rows.Add("Broken Table", 10.99d);
// chart series
var series = new ColumnSeries()
{
IndependentValueBinding = new Binding("Key"),
DependentValueBinding = new Binding("Value")
{
Converter = new Conv()
},
ItemsSource = dataSet.Tables["MyTable"];
};
// chart stuff
MyChart.Series.Add(series);
MyChart.Title = "Names 'n Prices";
// some code to remove legend
var style = new Style(typeof(Control));
style.Setters.Add(new Setter(LegendItem.TemplateProperty, null));
MyChart.LegendStyle = style;
...
public class Conv : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return System.Convert.ToInt32(value.ToString());
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.ToString();
}
}