私はこのチュートリアルの例に従っています: しかし、残念ながら、それらのドキュメントは非常に曖昧で、何も正しく動作させることができません.
http://www.visiblox.com/blog/posts/2011/06/13/data-binding-with-visiblox-charts/#asg
私がやろうとしているのは、AutoSeriesGenerator を使用して新しいシリーズを自動的に作成し、そのラインシリーズをプライマリ Y 軸に追加することです。Visiblox で良い経験をしてくださる方がいらっしゃることを願っています。彼らの例をC#で表現する必要があると私が考えた方法は次のとおりです。
<local:WeatherStationsData x:Key="dataCollection">
<local:WeatherStationTemperature>
<local:HourTemperature Hour="1" Temperature="10" />
<local:HourTemperature Hour="2" Temperature="14" />
</local:WeatherStationTemperature>
<local:WeatherStationTemperature>
<local:HourTemperature Hour="1" Temperature="20" />
<local:HourTemperature Hour="2" Temperature="19" />
</local:WeatherStationTemperature>
</local:WeatherStationsData>
</UserControl.Resources>
<Grid x:Name="LayoutRoot">
<charts:Chart x:Name="Chart"
charts:AutoSeriesGenerator.XValuePath="Hour"
charts:AutoSeriesGenerator.YValuePath="Temperature"
charts:AutoSeriesGenerator.ChartSeriesProvider="LineSeries"
charts:AutoSeriesGenerator.ItemsSource="{StaticResource dataCollection}">
<charts:Chart.XAxis>
<charts:LinearAxis />
</charts:Chart.XAxis>
<charts:Chart.YAxis>
<charts:LinearAxis />
</charts:Chart.YAxis>
</charts:Chart>
//X and Y points
public class ChartDataPoint
{
public DateTime X { get; set; }
public float Y { get; set; }
public ChartDataPoint(DateTime X, float Y)
{
this.X = X;
this.Y = Y;
}
}
//represents a dataseries - collection of datapoints
public class DataPointsCollection : ObservableCollection<ChartDataPoint>
{
}
//the "dataseries"
public class DataSeries : ObservableCollection<DataPointsCollection>
{
}
But it isn't working as expected.
public IChartSeries CreateSeries(object targetParent, object boundObject)
{
LineSeries lineSeries = null;
if (targetParent is LineSeries)
{
lineSeries = new LineSeries();
lineSeries.YAxis = new LinearAxis();
AxisCollection.Add(lineSeries.YAxis);
}
return lineSeries;
}
彼らのドキュメントによると、targetObject は IChartSeries がラップされているビジネス オブジェクトです。しかし、オブジェクトの代わりに取得しているのはコレクションです! そして、そのメソッドは常に複数回呼び出されます。つまり、多くの Lineseries が生成されます。CollectionChanged イベントを試しましたが、同じ問題です。一度呼び出されるのではなく、複数回呼び出されるので意味がありません。
どうすればこの問題を解決できますか、ありがとう。