2009-12-12 7 views
1

Je suis en train de créer un graphique en utilisant le ColumnSeries de la boîte à outils wpf et je semble avoir des problèmes avec la liaison de données. Voici le XAML:wpf problème de liaison de données de série de colonnes de graphique

<Grid> 
    <chartingToolkit:ColumnSeries Height="18" HorizontalAlignment="Left" Margin="188,169,0,0" Name="columnSeries1" VerticalAlignment="Top" Width="18" IndependentValueBinding="{Binding Path=Date}" DependentValueBinding="{Binding Path=Value}" /> 
</Grid> 

Dans le code derrière, j'appelle une procédure stockée et mettre le résultat dans une DataTable comme ceci:

string connString = ConfigurationManager.ConnectionStrings["string"].ConnectionString; 
      using (SqlConnection cn = new SqlConnection(connString)) 
      { 
       DataTable dt = new DataTable("T1"); 
       cn.Open(); 
       SqlCommand cmd = new SqlCommand("T1_sp", cn); 
       cmd.CommandType = CommandType.StoredProcedure; 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       da.Fill(dt); 
       columnSeries1.ItemsSource = dt.DefaultView; 
       cn.Close(); 
      } 

Aucune erreur est générée mais je suis ne pas obtenir un graphique à colonnes non plus. Si je prends la même commande et la mets dans un DataGrid, ça marche bien. Que dois-je faire pour obtenir ceci dans mon tableau à colonnes?

Si elle aide, les données comming de retour dans les tableaux de données ressemble à ceci:

Date, type, Value 
2009-10-09, abc, 12.23 
2009-10-10, def, 13.35 

La date doit être la valeur indépendante obligatoire et la valeur doit être la valeur dépendante de liaison.

Répondre

2

Voici mon code de travail, nettoyé un peu pour plus de clarté. Peut-être que cela aidera.

XAML

<charting:Chart Grid.Column="1" Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="Transparent" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> 
     <charting:Chart.Series> 
      <charting:ColumnSeries x:Name="TrendChart" ItemsSource="{Binding Trend1}" IndependentValueBinding="{Binding Date}" DependentValueBinding="{Binding Spread}"> 
      </charting:ColumnSeries> 
     </charting:Chart.Series>    
    </charting:Chart> 

code derrière

string connString = ConfigurationManager.ConnectionStrings["string"].ConnectionString; 
       using (SqlConnection cn = new SqlConnection(connString)) 
       { 
        DataTable dt = new DataTable("Trend1"); 
        cn.Open(); 
        SqlCommand cmd = new SqlCommand("Trend1_sp", cn);      cmd.CommandType = CommandType.StoredProcedure; 
        SqlDataAdapter da = new SqlDataAdapter(cmd); 
        da.Fill(dt); 
        TrendChart.ItemsSource = dt.DefaultView; 
       } 

Hope that helps!