2010-06-02 6 views
18

Ich habe ein Problem mit der Charting Engine aus dem WPF Toolkit.WPF Toolkit Charting und IndependentValueBinding, IndependentValuePath

Ich habe die Daten nicht in ein ordnungsgemäßes Objektmodell verschoben, daher wird ItemSource mit einem DataView gesichert.

Erster Versuch

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

Dies stürzt, weil ich die Bindungen werden als die Werte für die Handlung oder irgendeiner Art von Mismatch glauben.

Zweiter Versuch

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

Dieser Absturz während der Initialisierung Schritt geschieht, weil die Pfadeigenschaften nicht mit Abhängigkeitseigenschaften gesichert sind und daher nicht gebunden werden können.

Dritter Versuch

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

Jetzt funktioniert das! Aber ich wollte die Bindung verwenden, damit ich von targetFooXColumnName zu targetFooBarXColumnName wechseln kann. Diese Lösung wird also eine Menge hacky aussehenden Code verursachen, um den Pfad manuell zu wechseln.

Gibt es eine Möglichkeit, das zu beheben? Kann ich eine Art Konverter verwenden, um die Binding-Eigenschaften zu erhalten, um die Daten korrekt aus den Spalten in der DataView zu ziehen?

Danke, Joel

+0

Wie sieht Ihr Datenkontext aus? Fügen Sie die Klassen zu Ihrer Frage hinzu. –

+0

Der Code wurde in den letzten 3 Jahren komplett neu geschrieben. –

+5

LOL Ich hatte nicht bemerkt, dass es so eine alte Frage war. Seltsamerweise tauchte es am oberen Rand des unbeantworteten Tabs auf. –

Antwort

0

Ich denke, Ihre Anwendung auf Grund abstürzt ist

ich kann mit aus Abstürze in ScatterSeries seiner Arbeits Binding „Sie die Daten nicht zu einem richtigen Objektmodell bewegt haben“ versuchen: Wie

<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; 
    } 

Nach meinem Wissen versuchen Sie bitte mit Proper-Modell für die Bindung ItemsSource zu ScatterSeries.

Verwandte Themen