Enlace de diccionario al gráfico del kit de herramientas de WPF

Aquí está mi código para vincular un elemento de diccionario a un control de gráfico. Sigo recibiendo el siguiente error:

"El índice estaba fuera del rango. Debe ser no negativo y menor que el tamaño de la colección. Nombre del parámetro: índice"

Aquí está mi código:

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]");

  }

XAM

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

Por favor ayuda :(

preguntado el 16 de mayo de 11 a las 18:05

El conjunto de datos tiene dos columnas 'Nombre químico' y 'Calentamiento global' -

1. ValueBindings recibe sus valores de la propiedad ItemsSource, que no es un diccionario (sino una extraña clase DefaultView). 2. IndependentValueBinding es lo mismo que el IndependentValuePath, se aplica a un artículo, no a una colección. Entonces, las últimas tres líneas del archivo de código son incorrectas. -

1 Respuestas

Ok, encontré el error. Hay rutas vinculantes y de valor en el xaml, pero se reemplazan en el código.

Quitaría esas líneas, así que aquí está el resultado:

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
}

contestado el 17 de mayo de 11 a las 01:05

¡Gracias por la respuesta! Supongo que hay otro problema aquí, sigo recibiendo el mismo error. El problema puede estar en el código XAML. - Mesa de mango

@MangoTable No he notado el xaml. Si, cambia el atributo DependentValuePath="Key" a DependentValuePath="Value" y el IndependentValuePath respectivamente. - vórtice de lobo

Gracias por la respuesta. Cambiando esta línea: "((ColumnSeries) ChartChemImpact.Series [0]). DataContext = Cdata;" simplemente colSeries.ItemsSource = CData; trabajó para mi. - Mesa de mango

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.