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

Item index Property getting reset when zoom settings selected

1 Answer 56 Views
Chart
This is a migrated thread and some comments may be shown as answers.
Kevin Tran
Top achievements
Rank 1
Kevin Tran asked on 18 Nov 2010, 07:04 AM
HI Team,

I am working on telerik controls from past year, Your controls are awesome as well as your support, Now i struck again with RadChart,
I build my chart with bar series , when number of bars are more than 7 ,I am applying zoom , So that a scroll bar will be visible and user can scroll. I am applying tooltip for every bar, to populate data I am taking Item index as the identifier, Until  and  unless i have  scroll bar everthing works fantastic, But when user scroll chart, irrespective of item number, the first bar series visible in chart gets item index as zero, so i am ending up with wrong values in my tool tips.

Here goes my code.
SeriesMapping series5 = new SeriesMapping();
           series5.SeriesDefinition = new LineSeriesDefinition();
           series5.SeriesDefinition.AxisName = "PCST";
           series5.SeriesDefinition.ShowItemToolTips = true;
           series5.SeriesDefinition.Appearance.Fill = new SolidColorBrush(Colors.Red);
           series5.SeriesDefinition.ItemLabelFormat = "N1";           
           ItemMapping series5_Mapping;
           ItemMapping catPCFMapping;
           ItemMapping PCFValMapping;
           series5.LegendLabel = "PC Sell Thru Actual";
           series5_Mapping = new ItemMapping("PCSTActual_Unit", DataPointMember.YValue);
           catPCFMapping = new ItemMapping("LevelName", DataPointMember.XCategory);
           PCFValMapping = new ItemMapping("LevelID", DataPointMember.XValue);
 
           series5.ItemMappings.Add(series5_Mapping);
           series5.ItemMappings.Add(catPCFMapping);
           series5.ItemMappings.Add(PCFValMapping);
 
           //rcCountryAttach_Summary.SeriesMappings.Add(series5);
 
           if (Data.Count() > 7)
           {
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.RangeStart = 0;
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.RangeEnd = 0.30;
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.MinZoomRange = .001;
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.ScrollMode = ScrollMode.ScrollAndZoom;
               rcCountryAttach_Summary.DefaultView.ChartArea.AxisX.StepLabelLevelCount = 2;
               rcCountryAttach_Summary.DefaultView.ChartArea.AxisX.StepLabelLevelHeight = 15;
           }
           else
           {
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.RangeEnd = 1;
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.MinZoomRange = 0.001;
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.ScrollMode = ScrollMode.None;
               rcCountryAttach_Summary.DefaultView.ChartArea.ZoomScrollSettingsX.RangeStart = 0;
               rcCountryAttach_Summary.DefaultView.ChartArea.AxisX.StepLabelLevelCount = 1;
               rcCountryAttach_Summary.DefaultView.ChartArea.AxisX.StepLabelLevelHeight = 15;
           }
 
           rcCountryAttach_Summary.ItemsSource = Data;

tooltip data

  void ChartArea_ItemToolTipOpening(ItemToolTip2D tooltip, ItemToolTipEventArgs e)
        {
 
            // MessageBox.Show("Hello");
 
            
 
            int item = e.ItemIndex;
            //throw new NotImplementedException();
            Grid Tooltipgrid = new Grid();
 
            ColumnDefinition cd = new ColumnDefinition();
            RowDefinition rd = new RowDefinition();
            Tooltipgrid.Children.Clear();
            Tooltipgrid.ColumnDefinitions.Clear();
            Tooltipgrid.RowDefinitions.Clear();
 
 
///add columns , ROws,
 
  TextBlock tb12 = new TextBlock();
            tb12.Foreground = new SolidColorBrush(Colors.Black);
            tb12.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
            tb12.VerticalAlignment = System.Windows.VerticalAlignment.Center;
 
            tb12.Text = (TooltipData[e.ItemIndex].PCSTActual_Unit * 1000000).ToString("###,##");// +" M";
 
            Tooltipgrid.Children.Add(tb12);
            Grid.SetRow(tb12, 1);
            Grid.SetColumn(tb12, 1);

I am attaching my screen shots here, Even though both are different bars in chart , us and canada , they both have item index as zero when scroll bar selected, so it ends up with same tool tip values,

SO my question is how to get item index of an item in chart,  irrespective of scroll bar ( Now what happening is I f i scroll my chart towards right, what ever the item comes first is getting item index as 0)

Hope I explained my issue clearly.





1 Answer, 1 is accepted

Sort by
0
Kevin Tran
Top achievements
Rank 1
answered on 18 Nov 2010, 07:56 AM
I guess i fixed this issue instead of taking Item index as identifier take x-axis value
add this piece of code in ur tooltip event

string value = e.DataPoint.XCategory;
 
         List<BIWCFService.CountryAttachSummary> data_tooltip;
 
         data_tooltip = TooltipData.Where(x => x.LevelName == value).ToList();


Thanks
Tags
Chart
Asked by
Kevin Tran
Top achievements
Rank 1
Answers by
Kevin Tran
Top achievements
Rank 1
Share this question
or