private Point GetPoint(object item)
    {
        var args = new ItemPointEventArgs(item);

        OnPointRequested(args);
        return(args.Point);
    }
    protected virtual void OnPointRequested(ItemPointEventArgs e)
    {
        EventHandler <ItemPointEventArgs> handler = PointRequested;

        if (handler != null)
        {
            handler(this, e);
        }
    }