2013-04-11 3 views
0

У меня есть эта простая диаграмма в Silverlight:Как я могу привязать данные к PointCollection диаграммы?

<toolkit:Chart HorizontalAlignment="Left" Margin="0,10,0,0" Title="Chart Title" VerticalAlignment="Top" Height="280" Width="390" Name="MyChart"> 
      <toolkit:ColumnSeries DependentValuePath="X" IndependentValuePath="Y"> 
       <toolkit:ColumnSeries.ItemsSource> 
        <PointCollection x:Name="PointColl"> 
         <Point>1,10</Point> 
         <Point>2,20</Point> 
         <Point>3,30</Point> 
         <Point>4,40</Point> 
        </PointCollection> 
       </toolkit:ColumnSeries.ItemsSource> 
      </toolkit:ColumnSeries> 
     </toolkit:Chart> 

и настройка Databinding в коде, как это:

 private ObservableCollection<Point> _myPointCollection = new ObservableCollection<Point>(); 
     public ObservableCollection<Point> MyPointCollection { get { return _myPointCollection; } } 

     public MainPage() 
     { 
      InitializeComponent(); 

      rand = new Random(); 

      MyPointCollection.Add(new Point(0, rand.Next(0, 50))); 
      MyPointCollection.Add(new Point(0, rand.Next(1, 50)));  
      MyPointCollection.Add(new Point(0, rand.Next(2, 50))); 
      MyPointCollection.Add(new Point(0, rand.Next(3, 50))); 

      MyChart.DataContext = this; 
     } 

Но где в XAML, чтобы я сказать, где связать данные?

ответ

1

Try:

<toolkit:Chart HorizontalAlignment="Left" Margin="0,10,0,0" Title="Chart Title" VerticalAlignment="Top" Height="280" Width="390" Name="MyChart"> 
     <toolkit:ColumnSeries DependentValuePath="X" IndependentValuePath="Y" ItemsSource={Binding MyPointCollection}> 

    </toolkit:Chart> 

Но, если вы хотите диаграмму обновления, когда вы изменить всю MyPointCollection собственность, вы должны поднять событие PropertyChanged. Вам не нужно это делать, когда вы добавляете или удаляете точки в коллекцию, tho.

Смежные вопросы