2010-06-02 4 views
18

Je suis confronté à un problème avec le moteur de cartographie de la boîte à outils WPF.WPF Toolkit Charting et IndependentValueBinding, IndependentValuePath

Je n'ai pas déplacé les données vers un modèle d'objet approprié, donc le ItemSource est soutenu par un DataView.

Première tentative

<chartingToolkit:ScatterSeries x:Name="TargetSeries" 
    DataPointStyle="{StaticResource TargetStyle}" 
    ItemsSource="{Binding Path=TargetSeriesData}" 
    IndependentValueBinding="{Binding Path=TargetSeries_X}" 
    DependentValueBinding="{Binding Path=TargetSeries_X}" /> 

Cette plante parce que je crois que les liaisons sont considérées comme les valeurs de l'intrigue ou une sorte de non-concordance.

Deuxième tentative

<chartingToolkit:ScatterSeries x:Name="TargetSeries" 
    DataPointStyle="{StaticResource TargetStyle}" 
    ItemsSource="{Binding Path=TargetSeriesData}" 
    IndependentValuePath="{Binding Path=TargetSeries_X}" 
    DependentValuePath="{Binding Path=TargetSeries_X}" /> 

Cet accident se produit lors de l'étape d'initialisation, car les propriétés de chemin d'accès ne sont pas sauvegardés avec des propriétés de dépendance et ne peuvent donc pas être liés.

Troisième tentative

<chartingToolkit:ScatterSeries x:Name="TargetSeries" 
    DataPointStyle="{StaticResource TargetStyle}" 
    ItemsSource="{Binding Path=TargetSeriesData}" 
    IndependentValuePath="targetFooXColumnName" 
    DependentValuePath="targetFooYColumnName" /> 

Maintenant, cela fonctionne! Mais je voulais utiliser la liaison afin que je puisse passer de targetFooXColumnName à targetFooBarXColumnName. Donc, cette solution va provoquer beaucoup de code hacky à la recherche de changer le chemin manuellement.

Y at-il un moyen de résoudre ce problème? Puis-je utiliser une sorte de convertisseur pour obtenir les propriétés de liaison pour extraire correctement les données des colonnes dans le DataView?

Merci, Joel

+0

À quoi ressemble votre contexte de données? Ajoutez les classes à votre question. –

+0

Le code a été complètement réécrit au cours des 3 dernières années. –

+5

LOL Je n'avais pas remarqué que c'était une vieille question. Bizarre, il a surgi au sommet de l'onglet sans réponse. –

Répondre

0

Je pense que votre application s'écraser sur la raison est « que vous ne l'avez pas déplacé les données vers un modèle d'objet propre »

je peux essayer de reliure à ScatterSeries son travail avec sur les accidents: Comme

<Grid Name="grid_Sample" Loaded="grid_Sample_Loaded"> 
    <DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart" 
     Width="400" Height="250" 
     Background="LightSteelBlue"> 
     <DVC:Chart.Series> 
      <DVC:ScatterSeries x:Name="TargetSeries" 
          ItemsSource="{Binding sampleList}" 
     IndependentValueBinding="{Binding Path=TargetSeries_X}" 
     DependentValueBinding="{Binding Path=TargetSeries_Y}"> 
    </DVC:ScatterSeries> 
     </DVC:Chart.Series> 
    </DVC:Chart> 
</Grid> 

private void grid_Sample_Loaded(object sender, RoutedEventArgs e) 
    { 
     sampleList = new ObservableCollection<SampleTest>() { 
      new SampleTest(){TargetSeries_X=20,TargetSeries_Y=50}, 
     new SampleTest(){TargetSeries_X=25,TargetSeries_Y=60}, 
     new SampleTest(){TargetSeries_X=30,TargetSeries_Y=50}, 
     new SampleTest(){TargetSeries_X=40,TargetSeries_Y=60} 
     }; 
     ((ScatterSeries)mcChart.Series[0]).ItemsSource = sampleList; 
    } 

Selon Mes connaissances s'il vous plaît essayer avec le modèle approprié pour lier ItemsSource à ScatterSeries.