Привязка словаря к диаграмме инструментария WPF

Вот мой код для привязки элемента словаря к элементу управления Chart. Я продолжаю получать следующую ошибку:

"Индекс вне допустимого диапазона. Он должен быть неотрицательным и меньше размера коллекции. Имя параметра: индекс"

Вот мой код:

foreach (DataRow drow in objD0s.Tables[0].Rows)// Adding values from a dataset to dictionary    
     {


         string strvalue = Convert.ToString(drow["Chemical Name"]);
         string doublevalue = Convert.ToString(drow["Global Warming"]);
         Cdata.Add(Convert.ToString(strvalue), Convert.ToDouble(doublevalue));

     }
     ColumnSeries colSeries = ChartChemImpact.Series[0] as ColumnSeries;     

         ((ColumnSeries)ChartChemImpact.Series[0]).DataContext = Cdata;
         colSeries.ItemsSource = myDataTable0.DefaultView;
         colSeries.IndependentValueBinding = new Binding("[Chemical Name]");
         colSeries.DependentValueBinding = new Binding("[Global Warming]");

  }

ХАМ

 chartingToolkit:Chart Name="ChartChemImpact" Title="Chart Title"   Width="384"            Height="280">
   <chartingToolkit:ColumnSeries DependentValuePath="Key"  IndependentValuePath="Value" ItemsSource="{Binding}" Name="colSeries" />
  </chartingToolkit:Chart>

Пожалуйста помоги :(


person MangoTable    schedule 16.05.2011    source источник
comment
Набор данных имеет два столбца «Химическое название» и «Глобальное потепление».   -  person MangoTable    schedule 16.05.2011
comment
1. ValueBindings получают свои значения из свойства ItemsSource, которое не является словарем (а странным классом DefaultView). 2. IndependentValueBinding совпадает с IndependentValuePath, применяется к элементу, а не к коллекции. Таким образом, последние три строки файла кода неверны.   -  person vortexwolf    schedule 17.05.2011


Ответы (1)


Хорошо, я нашел ошибку. В xaml есть пути привязки и значения, но они заменены в коде.

Я бы удалил эти строки, так что вот результат:

foreach (DataRow drow in objD0s.Tables[0].Rows)// Adding values from a dataset to dictionary    
{
     string strvalue = Convert.ToString(drow["Chemical Name"]);
     string doublevalue = Convert.ToString(drow["Global Warming"]);
     Cdata.Add(Convert.ToString(strvalue), Convert.ToDouble(doublevalue));
}

((ColumnSeries)ChartChemImpact.Series[0]).DataContext = Cdata;
//And that's the end of the function, no more code
}
person vortexwolf    schedule 16.05.2011
comment
Спасибо за ответ! Я предполагаю, что здесь какая-то другая проблема, я все еще получаю ту же ошибку. Проблема может заключаться в коде XAML. - person MangoTable; 17.05.2011
comment
@MangoTable Я не заметил xaml. Да, измените атрибут DependentValuePath="Key" на DependentValuePath="Value" и IndependentValuePath соответственно. - person vortexwolf; 18.05.2011
comment
Спасибо за ответ. Изменение этой строки: ((ColumnSeries)ChartChemImpact.Series[0]).DataContext = Cdata; просто colSeries.ItemsSource=CData; работал на меня. - person MangoTable; 19.05.2011