public ContextPopupImplementation()
        {
            _popup = new EContextPopup(TForms.NativeParent)
            {
                Style = "select_mode",
            };

            _popup.BackButtonPressed += (s, e) =>
            {
                _popup.Dismiss();
            };

            _popup.Dismissed += (s, e) =>
            {
                Dismissed?.Invoke(this, EventArgs.Empty);
            };

            _popup.SetDirectionPriorty(
                EContextPopupDirection.Down,
                EContextPopupDirection.Down,
                EContextPopupDirection.Down,
                EContextPopupDirection.Down);

            _items = new Dictionary <ContextPopupItem, EContextPopupItem>();
        }
        /// <summary>
        /// ContextPopupRenderer class constructor.
        /// </summary>
        public ContextPopupRenderer()
        {
            _popup = new EContextPopup(TForms.NativeParent);

            _popup.BackButtonPressed += (s, e) =>
            {
                _popup.Dismiss();
            };

            _popup.Dismissed += (s, e) =>
            {
                Dismissed?.Invoke(this, EventArgs.Empty);
            };

            _items = new Dictionary <ContextPopupItem, EContextPopupItem>();
        }
        /// <summary>
        /// Releases unmanaged resources used by ContextPopup.
        /// </summary>
        /// <param name="isDisposing">Flag indicating whether process of disposing lasts or not.</param>
        protected virtual void Dispose(bool isDisposing)
        {
            if (_isDisposed)
            {
                return;
            }

            if (isDisposing)
            {
                if (_popup != null)
                {
                    _popup.Unrealize();
                    _popup = null;
                }
            }

            _isDisposed = true;
        }