Hello Telerik Support,
after taking my first steps with RangeSelector and ChartView controls I found an issue with a simple bar chart. The length of some bars in the chart of the RangeSelector doesn't match with the bars in the ChartView. The relation is wrong.I provided a screenshot and marked the bars. I could provide a sample application, but I can't attach a zip file, so here's the code of the main form:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Telerik.WinControls;using Telerik.WinControls.UI;namespace TelerikChartView{ public partial class MainForm : Telerik.WinControls.UI.RadForm { private List<Kapazitaetspunkt> _BackListPunkte; private BindingList<Kapazitaetspunkt> Punkte; public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { _BackListPunkte = new List<Kapazitaetspunkt>(); Punkte = new BindingList<Kapazitaetspunkt>(_BackListPunkte); //Punkte = new BindingList<Kapazitaetspunkt>(); rngTimeSelector.AssociatedControl = cvChart; rngTimeSelector.RangeSelectorElement.ScrollSelectorElement.Visibility = ElementVisibility.Collapsed; BarSeries bars = new BarSeries(); bars.DataSource = Punkte; bars.ValueMember = nameof(Kapazitaetspunkt.Percentage); bars.CategoryMember = nameof(Kapazitaetspunkt.Date); cvChart.Series.Add(bars); } private void GenerateTestData(int addMonths = 0) { Punkte.Clear(); const int count = 25; const int step = 4; var von = DateTime.Today.AddMonths(addMonths); var bis = von.AddDays(count); double percentage = 0; //_BackListPunkte.Add(new Kapazitaetspunkt(von.AddDays(-1), null)); Punkte.Add(new Kapazitaetspunkt(von.AddDays(-1), null)); while (von < bis) { //_BackListPunkte.Add(new Kapazitaetspunkt(von, percentage)); Punkte.Add(new Kapazitaetspunkt(von, percentage)); percentage += step; von = von.AddDays(1); } //_BackListPunkte.Add(new Kapazitaetspunkt(von.AddDays(1), null)); Punkte.Add(new Kapazitaetspunkt(von.AddDays(1), null)); } private void btnGenerateData_Click(object sender, EventArgs e) { GenerateTestData(); rngTimeSelector.RangeSelectorElement.InitializeElements(); rngTimeSelector.RangeSelectorElement.ResetLayout(true); } private void btnGenerateData2_Click(object sender, EventArgs e) { GenerateTestData(2); rngTimeSelector.RangeSelectorElement.InitializeElements(); rngTimeSelector.RangeSelectorElement.ResetLayout(true); } private void rngTimeSelector_ScaleInitializing(object sender, ScaleInitializingEventArgs e) { e.Cancel = true; } } public class Kapazitaetspunkt : INotifyPropertyChanged { private DateTime _Date; public DateTime Date { get => _Date; set { if (value != Date) { _Date = value; OnPropertyChanged(); } } } public double? _Percentage; public double? Percentage { get => _Percentage; set { if (value != Percentage) { _Percentage = value; OnPropertyChanged(); } } } public Kapazitaetspunkt(DateTime date, double? percentage) { Date = date; Percentage = percentage; } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } }}Regards,
Stephan