最後我發現時間來創建動態隨機序列的一個例子。
XAML代碼很簡單:一個按鈕和圖表。
<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);
}
}
如果你比較喜歡的視圖模型和觀察集合工作比代碼隱藏,我有extended chart class這使得數據綁定系列的列表。但是它需要更多的代碼,所以讓我們來看一下這個代碼隱藏的例子。
你想添加一個項目的圖例?好的,我知道如何做到這一點。 – vorrtex 2011-05-13 15:34:08
那麼你能告訴我嗎? – user751344 2011-06-03 04:40:23