2011-05-12 2 views
1

Silverlight StackedAreaChart에 새로운 무작위 값 계열을 동적으로 추가 할 수있는 sth 코드를 만들고 싶습니다. 즉, 런타임에 사용자가 버튼을 클릭 할 때마다 프로그램 기본 StackedAreaChart에 추가 된 다른 색상의 새 값 시리즈가 필요합니다.Silverlight에서 DefinitionSeries를 StackedAreaChart에 동적으로 추가하는 방법은 무엇입니까?

Silverlight Visualization demos (Stacked Area example)을 제외한 인터넷에서 좋은 예는 찾을 수 없습니다.

는 프로그래머는 미리 정의 된 세 가지 시리즈는 정적했다,하지만 난 그것을 동적으로 원하고 그것을 알아낼 질수 : - 지금이에 2 주 동안/

나 '이후, 어떤 도움이 크게 감사합니다 이 물건 :(

들으 PPL! :)

+0

범례에 항목을 추가 하시겠습니까? 좋아, 나는 어떻게하는지 안다. – vorrtex

+0

그럼 나에게 보여줄 수 있니? – user751344

답변

0

새로운 m 마지막으로 나는 동적 임의 시리즈의 예를 작성하는 시간을 발견했다.

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 있습니다. 하지만 훨씬 많은 코드가 필요하므로 코드 숨김으로이 예제를 만들어 보자.

+0

고맙습니다. 좋은 시작입니다. 제가 직면하고있는 문제는 스택 차트 여야한다는 것입니다. 나는 값을 동적으로 유지하기 위해 데이터 구조를 정의하는 방법을 이해할 수 없다. 어떤 도움을 주셔서 감사합니다. 정말 고마워! – user751344

+0

@ user751344 변경할 것이별로 없습니다. 내 대답을 편집했지만 이제 AreaSeries 대신 StackedAreaSeries를 사용합니다. – vorrtex

관련 문제