Represents an item used by a Series in the Legend of a Chart.
Inheritance: Windows.UI.Xaml.Controls.ContentControl
 /// <summary>
 /// Initializes a new instance of the SeriesDefinition class.
 /// </summary>
 public SeriesDefinition()
 {
     _legendItem = new LegendItem { Owner = this };
     _legendItem.SetBinding(LegendItem.ContentProperty, new Binding(){Path=new PropertyPath("ActualTitle") , Source = this });
     _legendItem.SetBinding(LegendItem.StyleProperty, new Binding(){Path=new PropertyPath("ActualLegendItemStyle") , Source = this });
     _legendItems.Add(_legendItem);
 }
Esempio n. 2
0
        /// <summary>
        /// Updates the indexes of all legend items when a change is made to the collection.
        /// </summary>
        private void UpdateLegendItemIndexes()
        {
            int index = 0;

            foreach (DataPoint dataPoint in ActiveDataPoints)
            {
                LegendItem legendItem = _dataPointLegendItems[dataPoint];
                legendItem.Content = dataPoint.IndependentValue ?? (index + 1);
                index++;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Removes data point's legend item when the data point is removed.
        /// </summary>
        /// <param name="dataPoint">The data point to remove.</param>
        protected override void RemoveDataPoint(DataPoint dataPoint)
        {
            base.RemoveDataPoint(dataPoint);
            if (dataPoint != null)
            {
                LegendItem legendItem = _dataPointLegendItems[dataPoint];
                _dataPointLegendItems.Remove(dataPoint);

                LegendItems.Remove(legendItem);
                UpdateLegendItemIndexes();
            }
        }
 /// <summary>
 /// Initializes a new instance of the SeriesDefinition class.
 /// </summary>
 public SeriesDefinition()
 {
     _legendItem = new LegendItem {
         Owner = this
     };
     _legendItem.SetBinding(LegendItem.ContentProperty, new Binding()
     {
         Path = new PropertyPath("ActualTitle"), Source = this
     });
     _legendItem.SetBinding(LegendItem.StyleProperty, new Binding()
     {
         Path = new PropertyPath("ActualLegendItemStyle"), Source = this
     });
     _legendItems.Add(_legendItem);
 }
Esempio n. 5
0
        /// <summary>
        /// Creates a legend item for each data point.
        /// </summary>
        /// <param name="dataPoint">The data point added.</param>
        protected override void AddDataPoint(DataPoint dataPoint)
        {
            base.AddDataPoint(dataPoint);
            PieDataPoint pieDataPoint = (PieDataPoint)dataPoint;

            int        index      = ActiveDataPoints.IndexOf(dataPoint) + 1;
            LegendItem legendItem = CreatePieLegendItem(dataPoint, index);

            // Grab a style enumerator if we don't have one already.
            if (_resourceDictionaryEnumerator == null)
            {
                _resourceDictionaryEnumerator = GetResourceDictionaryWithTargetType(this, typeof(PieDataPoint), true);
            }

            if (_resourceDictionaryEnumerator.MoveNext())
            {
                ResourceDictionary paletteResources =
                    _resourceDictionaryEnumerator.Current.ShallowCopy();
                pieDataPoint.PaletteResources = paletteResources;
                pieDataPoint.Resources.MergedDictionaries.Add(paletteResources);
            }
            else
            {
                pieDataPoint.PaletteResources = null;
            }
            pieDataPoint.ActualDataPointStyle = DataPointStyle ?? pieDataPoint.Resources[DataPointStyleName] as Style;
            pieDataPoint.SetBinding(PieDataPoint.StyleProperty, new Binding {
                Path = new PropertyPath(PieDataPoint.ActualDataPointStyleName), Source = pieDataPoint
            });
            if (LegendItemStyle != null || pieDataPoint.Resources.ContainsKey(LegendItemStyleName))
            {
                pieDataPoint.ActualLegendItemStyle = LegendItemStyle ?? (pieDataPoint.Resources[LegendItemStyleName] as Style);
            }
            legendItem.SetBinding(LegendItem.StyleProperty, new Binding {
                Path = new PropertyPath(ActualLegendItemStyleName), Source = pieDataPoint
            });

            _dataPointLegendItems[dataPoint] = legendItem;
            LegendItems.Add(legendItem);
            UpdateLegendItemIndexes();
        }
Esempio n. 6
0
        /// <summary>
        /// Creates a legend item from a data point.
        /// </summary>
        /// <param name="dataPoint">The data point to use to create the legend item.</param>
        /// <param name="index">The 1-based index of the Control.</param>
        /// <returns>The series host legend item.</returns>
        protected virtual LegendItem CreatePieLegendItem(DataPoint dataPoint, int index)
        {
            LegendItem legendItem = CreateLegendItem(this);

            // Set the Content of the LegendItem
            legendItem.Content = dataPoint.IndependentValue ?? index;
            // Create a representative DataPoint for access to styled properties
            DataPoint legendDataPoint = CreateDataPoint();

            legendDataPoint.DataContext = dataPoint.DataContext;
            if (null != PlotArea)
            {
                // Bounce into the visual tree to get default Style applied
                PlotArea.Children.Add(legendDataPoint);
                PlotArea.Children.Remove(legendDataPoint);
            }
            legendDataPoint.SetBinding(DataPoint.StyleProperty, new Binding {
                Path = new PropertyPath(PieDataPoint.ActualDataPointStyleName), Source = dataPoint
            });
            legendItem.DataContext = legendDataPoint;
            return(legendItem);
        }
 /// <summary>
 /// Creates a legend item.
 /// </summary>
 /// <returns>A legend item for insertion in the legend items collection.
 /// </returns>
 /// <param name="owner">The owner of the new LegendItem.</param>
 protected virtual LegendItem CreateLegendItem(DataPointSeries owner)
 {
     LegendItem legendItem = new LegendItem() { Owner = owner };
     legendItem.SetBinding(LegendItem.StyleProperty, new Binding(){Path=new PropertyPath(ActualLegendItemStyleName) , Source = this });
     legendItem.SetBinding(LegendItem.ContentProperty, new Binding(){Path=new PropertyPath(TitleName) , Source = this });
     return legendItem;
 }