Unplanned
Last Updated: 25 Apr 2022 08:19 by Dinko
The RangeSelector control does not support multiple axes for the chart series. If there is more than one axis, the RangeSelector will use only one and apply all series to it. This way the chart inside the RangeSelector will be different from the assigned RadChartView.
Unplanned
Last Updated: 16 May 2019 05:33 by ADMIN
Unplanned
Last Updated: 16 May 2019 05:27 by ADMIN
Completed
Last Updated: 19 Jul 2018 10:02 by Dimitar
To reproduce: please run the sample project and follow the steps from the gif file. You will notice that the clicks you perform, the much memory is consumed which is not released.
Unplanned
Last Updated: 12 Jul 2018 11:44 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: RangeSelector
Type: Bug Report
0
To reproduce: when you set the Orientation property to Vertical, the arrow buttons work in the opposite direction. Additionally, you change the range by using the thumbs and try to move the selection, the behavior is not expected. Please refer to the attached gif file.
Completed
Last Updated: 15 Aug 2017 10:54 by ADMIN
Completed
Last Updated: 20 Apr 2017 14:31 by ADMIN
If a RadChartView is set as the associated object of a RadRangeSelector and then is data bound the range selector does not render the chart in its inner element.

How to reproduce:
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

            this.radRangeSelector1.AssociatedControl = this.radChartView1;
        }

        BindingList<MyCustomObject> myList;
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            myList = new BindingList<MyCustomObject>();
            myList = new BindingList<MyCustomObject>();
            myList.Add(new MyCustomObject(1, "Outdoor"));
            myList.Add(new MyCustomObject(8, "Hardware"));
            myList.Add(new MyCustomObject(3, "Tools"));
            myList.Add(new MyCustomObject(6, "Books"));
            myList.Add(new MyCustomObject(2, "Appliances"));
            BarSeries barSeria = new BarSeries();
            radChartView1.Series.Add(barSeria);
            barSeria.DataSource = myList;
            barSeria.ValueMember = "MyInt";
            barSeria.CategoryMember = "MyString";
        }

        public class MyCustomObject : INotifyPropertyChanged
        {
            private int _myInt;
            private string _myString;
            public MyCustomObject(int myInt, string myString)
            {
                _myInt = myInt;
                _myString = myString;
            }
            public int MyInt
            {
                get { return _myInt; }
                set
                {
                    _myInt = value;
                    OnPropertyChanged("MyInt");
                }
            }
            public string MyString
            {
                get { return _myString; }
                set
                {
                    _myString = value;
                    OnPropertyChanged("MyString");
                }
            }
            public event PropertyChangedEventHandler PropertyChanged;
            protected virtual void OnPropertyChanged(string propertyName)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
                }
            }
        }
    }

Workaround: 

Set the AssociatedControl property of the range selector after binding  the chart
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        BindingList<MyCustomObject> myList;
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            myList = new BindingList<MyCustomObject>();
            myList = new BindingList<MyCustomObject>();
            myList.Add(new MyCustomObject(1, "Outdoor"));
            myList.Add(new MyCustomObject(8, "Hardware"));
            myList.Add(new MyCustomObject(3, "Tools"));
            myList.Add(new MyCustomObject(6, "Books"));
            myList.Add(new MyCustomObject(2, "Appliances"));
            BarSeries barSeria = new BarSeries();
            radChartView1.Series.Add(barSeria);
            barSeria.DataSource = myList;
            barSeria.ValueMember = "MyInt";
            barSeria.CategoryMember = "MyString";

            this.radRangeSelector1.AssociatedControl = this.radChartView1;
        }

        public class MyCustomObject : INotifyPropertyChanged
        {
            private int _myInt;
            private string _myString;
            public MyCustomObject(int myInt, string myString)
            {
                _myInt = myInt;
                _myString = myString;
            }
            public int MyInt
            {
                get { return _myInt; }
                set
                {
                    _myInt = value;
                    OnPropertyChanged("MyInt");
                }
            }
            public string MyString
            {
                get { return _myString; }
                set
                {
                    _myString = value;
                    OnPropertyChanged("MyString");
                }
            }
            public event PropertyChangedEventHandler PropertyChanged;
            protected virtual void OnPropertyChanged(string propertyName)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
                }
            }
        }
    }
Unplanned
Last Updated: 07 Apr 2017 10:12 by ADMIN
How to reproduce:
public partial class Form1 : Form
    {
        private RangeSelectorViewElement chartElement;

        public Form1()
        {
            InitializeComponent();

            new RadControlSpyForm().Show();

            this.SetupChart();

            this.radRangeSelector1.AssociatedControl = this.radChartView1;
            this.chartElement = this.radRangeSelector1.RangeSelectorElement.AssociatedElement as RangeSelectorViewElement;
            this.chartElement.SeriesInitializing += new SeriesInitializingEventHandler(chartElement_SeriesInitializing);
        }

        private void chartElement_SeriesInitializing(object sender, SeriesInitializingEventArgs e)
        {
            e.SeriesType = typeof(LineSeries);
        }

        private void SetupChart()
        {
            LineSeries lineSeries = new LineSeries();
            lineSeries.DataPoints.Add(new CategoricalDataPoint(20, "Jan"));
            lineSeries.DataPoints.Add(new CategoricalDataPoint(22, "Apr"));
            lineSeries.DataPoints.Add(new CategoricalDataPoint(12, "Jul"));
            lineSeries.DataPoints.Add(new CategoricalDataPoint(19, "Oct"));
            this.radChartView1.Series.Add(lineSeries);

            LineSeries lineSeries2 = new LineSeries();
            lineSeries2.DataPoints.Add(new CategoricalDataPoint(3, "Jan"));
            lineSeries2.DataPoints.Add(new CategoricalDataPoint(1, "Apr"));
            lineSeries2.DataPoints.Add(new CategoricalDataPoint(5, "Jul"));
            lineSeries2.DataPoints.Add(new CategoricalDataPoint(2, "Oct"));
            this.radChartView1.Series.Add(lineSeries2);
        }

        private void radButton1_Click(object sender, EventArgs e)
        {
            this.radRangeSelector1.Height = 100;
            //this.ScaleVerticallyChart(this.chartElement.View, .55);
        }
}

Workaround: zoom out along the Y axis the hosted chart element and pan the view so that all series are visible
private void radButton1_Click(object sender, EventArgs e)
        {
            this.radRangeSelector1.Height = 100;
            this.ScaleVerticallyChart(this.chartElement.View, this.radRangeSelector1.Height / (float)150);
        }

        private void ScaleVerticallyChart(ChartView view, double verticalScaleFactor)
        {
            FieldInfo fiPan = view.GetType().GetField("pan", BindingFlags.NonPublic | BindingFlags.Instance);
            RadPoint pan = (RadPoint)fiPan.GetValue(view);
            FieldInfo fiZoom = view.GetType().GetField("zoom", BindingFlags.NonPublic | BindingFlags.Instance);
            RadSize zoom = (RadSize)fiZoom.GetValue(view);

            double verticalPan = pan.Y * verticalScaleFactor / zoom.Height;
            CartesianArea area = view.GetArea<CartesianArea>();
            if (area != null)
            {
                MethodInfo mi = area.GetType().GetMethod("GetCartesianClipRect", BindingFlags.NonPublic | BindingFlags.Instance);
                RectangleF rect = (RectangleF)mi.Invoke(area, new object[] { });
                SizeF areaSize = rect.Size;
                verticalPan += areaSize.Height - (areaSize.Height * verticalScaleFactor + verticalPan);
            }

            zoom = new RadSize(1, verticalScaleFactor);
            fiZoom.SetValue(view, zoom);
            view.Layout();
        }
Completed
Last Updated: 29 Nov 2016 12:00 by ADMIN
currently the chart is updated on MouseUp
Unplanned
Last Updated: 04 Apr 2016 13:12 by ADMIN
To reproduce:

Add a RadChartView and setup drilldown. Add a RadRangeSelector and associate the chart with it. Start the application and drill down, you will see that the layout of the chart is not updated accordingly.

Workaround:

In the Drill event handler save a value whether a drill has occured. On the MouseUp event of RadChartView update the layout of the chart:

private bool drill;
void Chart_Drill(object sender, DrillEventArgs e)
{
    drill = true;
}

void Chart_MouseUp(object sender, MouseEventArgs e)
{
    if (this.drill)
    {
        Application.DoEvents();
        (this.rangeSelector.RangeSelectorElement.AssociatedElement as IRangeSelectorElement).UpdateAssociatedView();
    }

    drill = false;
}
Unplanned
Last Updated: 30 Mar 2016 10:47 by ADMIN
ADMIN
Created by: Peter
Comments: 0
Category: RangeSelector
Type: Bug Report
1

			
Unplanned
Last Updated: 30 Mar 2016 10:47 by ADMIN
Use the following sample code to reproduce the issue:

LineSeries series = new LineSeries();
series.ValueMember = "Value";
series.CategoryMember = "Category";
this.radChartView1.Series.Add(series);

DataTable table = new DataTable();

table.Columns.Add("Category", typeof(int));
table.Columns.Add("Value", typeof(int));
double value = 100;

for (int i = 0; i < 1000; i++)
{
    value += rnd.Next(-3, +4);

    table.Rows.Add(i, value);
}

series.DataSource = table;

this.radRangeSelector1.AssociatedControl = this.radChartView1;
Completed
Last Updated: 16 Oct 2014 08:17 by ADMIN
To reproduce:

Add a RadChartView and add some data. Add a RadRangeSelector and set the AssociatedControl to be the chart.  On a button click set the Start and EndRange of the range selector. You will see in the chart that the range will not update.

Workaround:

Update the view manually:

this.rangeSelector.StartRange = 30;
this.rangeSelector.EndRange = 60;
(this.rangeSelector.RangeSelectorElement.AssociatedElement as IRangeSelectorElement).UpdateAssociatedView();