protected override FrameworkElement CreateMarkerCore(object dataItem)
        {
            VectorFieldChartItem item = new VectorFieldChartItem();

            item.SetBinding(VectorFieldChartItem.StartPointProperty, locationBinding);
            item.SetBinding(VectorFieldChartItem.DirectionProperty, directionBinding);

            item.DataContext = dataItem;

            return(item);
        }
        private static object CoerceEndPoint(DependencyObject d, object value)
        {
            VectorFieldChartItem item = (VectorFieldChartItem)d;

            return(item.StartPoint + item.Direction);
        }
        private static void OnCommonPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            VectorFieldChartItem owner = (VectorFieldChartItem)d;

            owner.CoerceValue(EndPointProperty);
        }