2010-06-02 15 views
18

WPF araç setinden çizim motoruyla ilgili bir sorunla karşılaşıyorum.WPF Araç Takımı Charting ve IndependentValueBinding, IndependentValuePath

Verileri uygun bir nesne modeline aktarmadım, bu nedenle ItemSource bir DataView ile destekleniyor.

İlk denemesi

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

Ben bağlamaları arsa veya uyumsuzluğu çeşit değerler olarak kabul edilir inandığımız için bu çöküyor.

İkinci girişimi

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

Yol özellikleri bağımlılık özellikleri ile desteklenen edilmez ve bu nedenle bağlı olamaz, çünkü bu kilitlenme başlatma adımı sırasında gerçekleşir.

Üçüncü girişimi

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

Şimdi bu işleri! Ama bağlayıcı kullanmak istedim, böylece targetFooXColumnName kullanarak targetFooBarXColumnName. Bu yüzden bu çözüm Yolu manuel olarak değiştirmek için bolca hacky görünümlü bir kod oluşturacaktır.

Bunu düzeltmenin bir yolu var mı? DataView'daki sütunlardan verileri doğru bir şekilde çekmek için Bağlama özelliklerine sahip olmak için bir çeşit dönüştürücü kullanabilir miyim?

sayesinde Joel

+0

Veri içeriğiniz nasıl görünüyor? Sınıfları sorunuza ekleyin. –

+0

Kod, son 3 yılda tamamen yeniden yazıldı. –

+5

LOL Bu eski bir soru olduğunu fark etmemiştim. Cevapsız sekmenin üst kısmında ortaya çıktı. –

cevap

0

Sebepsiz çökmesini Başvurunuz "Eğer uygun bir nesne modeli veri taşımadıysanız" olduğunu düşünüyorum

i onun dışarı çöker ile çalışan ScatterSeries içinde Cilt deneyebilirsiniz:

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

Bilgilerime göre, lütfen ItemsSource'tan ScatterSeries'e bağlanmak için Doğru modelle deneyin.

İlgili konular