最後に、動的ランダム シリーズの例を作成する時間を見つけました。
XAML コードは単純です: 1 つのボタンとグラフ。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Content="Add random series" Click="AddSeries_Click" HorizontalAlignment="Center" />
<chart:Chart x:Name="chart" Grid.Row="1">
<chart:StackedAreaSeries />
</chart:Chart>
</Grid>
コード ビハインドはかなり複雑に見えますが、コードの大部分はランダム データの生成に使用されます。メインコードはAddSeries_Click
メソッドにあります。
public partial class MainPage : UserControl
{
private string[] categories = new[] { "Apples", "Oranges", "Bananas", "Lemons" };
private Random random = new Random((int)DateTime.Now.Ticks);
private int lastSeriesYear = 2011;
public MainPage()
{
InitializeComponent();
}
public class ChartItem
{
public string Title { get; set; }
public double Value { get; set; }
}
private void AddSeries_Click(object sender, RoutedEventArgs e)
{
var sd = new SeriesDefinition();
sd.ItemsSource = categories.Select(c => new ChartItem { Title = c, Value = random.Next(30, 35) }).ToList();
sd.Title = (lastSeriesYear--).ToString();
sd.IndependentValuePath = "Title";
sd.DependentValuePath = "Value";
((StackedAreaSeries)this.chart.Series[0]).SeriesDefinitions.Add(sd);
}
}
コード ビハインドよりもビュー モデルと観察可能なコレクションを使用する方が好きな場合は、シリーズのリストにデータをバインドできる拡張チャート クラスを使用します。しかし、それにはもっと多くのコードが必要なので、このコード ビハインドの例を見てみましょう。