private static void OnItemsPanelTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PointChartBase chart = (PointChartBase)d;

            if (e.NewValue != null)
            {
                chart.OnItemsPanelChanged();
            }
        }
        private static void OnIndependentValueMappingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PointChartBase owner = (PointChartBase)d;

            string path = (string)e.NewValue;

            if (path == null)
            {
                owner.IndependentValueBinding = null;
            }
            else
            {
                owner.IndependentValueBinding = new Binding(path);
            }
        }
        private static object CoerceIndependentValuePath(DependencyObject d, object value)
        {
            PointChartBase chart = (PointChartBase)d;

            string path = (string)value;

            if (!string.IsNullOrEmpty(path))
            {
                return(value);
            }

            if (chart.independentValueBinding != null)
            {
                return(chart.independentValueBinding.Path.Path);
            }

            return(null);
        }
        private static void OnDataSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PointChartBase owner = (PointChartBase)d;

            owner.OnDataSourceChanged((PointDataSourceBase)e.OldValue, (PointDataSourceBase)e.NewValue);
        }
        private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PointChartBase chart = (PointChartBase)d;

            chart.OnItemsSourceChanged(e);
        }