This is a migrated thread and some comments may be shown as answers.

Binding to DateTimeContinuousAxis.Maximum

4 Answers 123 Views
ChartView
This is a migrated thread and some comments may be shown as answers.
Geoffrey
Top achievements
Rank 1
Geoffrey asked on 21 Feb 2012, 11:24 PM
I am trying to bind to the DateTimeContinusousAxis.Maximum property in xaml but when I do it throws an exception. Is this possible?

4 Answers, 1 is accepted

Sort by
0
Yavor
Telerik team
answered on 24 Feb 2012, 03:36 PM
Hi Geoffrey,

We have made DateTimeContinusousAxis.Maximum property a dependency property for the Q1 release. Before that it was a regular property and binding it will throw an exception, since bindings are only supported on dependency property.

All the best,
Yavor
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0
MikeWiese
Top achievements
Rank 1
answered on 26 Jun 2012, 07:54 AM
So how would you write code to programatically bind a viewmodel property to an axis min or max?
0
Giuseppe
Telerik team
answered on 29 Jun 2012, 11:19 AM
Hello Mike,

Here is a sample code snippet to get you started:

XAML
<telerik:RadCartesianChart x:Name="RadChart1" />

C#
using System;
using System.Collections.Generic;
using System.Windows.Controls;
using System.Windows.Data;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.ChartView;
 
namespace SilverlightApplication15
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
 
            this.DataContext = new ViewModel();
 
            DateTimeContinuousAxis horizontalAxis = new DateTimeContinuousAxis() { LabelFormat = "dd/MM/yyyy" };
            horizontalAxis.SetBinding(DateTimeContinuousAxis.MinimumProperty, new Binding("AxisMinimum"));
            RadChart1.HorizontalAxis = horizontalAxis;
 
            RadChart1.VerticalAxis = new LinearAxis();
 
            BarSeries series = new BarSeries();
            series.CategoryBinding = new PropertyNameDataPointBinding("Date");
            series.ValueBinding = new PropertyNameDataPointBinding("Value");
            series.ItemsSource = (this.DataContext as ViewModel).Data;
 
            RadChart1.Series.Add(series);
        }
    }
 
    public class ViewModel : ViewModelBase
    {
        private Random rand = new Random(123456);
        private List<ChartData> _data;
        private DateTime _axisMinimum;
 
        public ViewModel()
        {
            this.Data = this.GetData();
            this.AxisMinimum = DateTime.Today.AddDays(-10);
        }
 
        public List<ChartData> Data
        {
            get
            {
                return this._data;
            }
            set
            {
                if (this._data != value)
                {
                    this._data = value;
                    this.OnPropertyChanged("Data");
                }
            }
        }
 
        public DateTime AxisMinimum
        {
            get
            {
                return this._axisMinimum;
            }
            set
            {
                if (this._axisMinimum != value)
                {
                    this._axisMinimum = value;
                    this.OnPropertyChanged("AxisMinimum");
                }
            }
        }
 
        private List<ChartData> GetData()
        {
            List<ChartData> data = new List<ChartData>();
            for (int i = 0; i < 10; i++)
            {
                data.Add(new ChartData() { Date = DateTime.Today.AddDays(i), Value = rand.Next(10, 100) });
            }
 
            return data;
        }
    }
 
    public class ChartData
    {
        public DateTime Date
        {
            get;
            set;
        }
 
        public double Value
        {
            get;
            set;
        }
    }
}

Hope this helps.


Greetings,
Giuseppe
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
MikeWiese
Top achievements
Rank 1
answered on 29 Jun 2012, 11:22 AM
Thank you Giuseppe
Tags
ChartView
Asked by
Geoffrey
Top achievements
Rank 1
Answers by
Yavor
Telerik team
MikeWiese
Top achievements
Rank 1
Giuseppe
Telerik team
Share this question
or