Поднять событие уровня приложения - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать обработчик событий, чтобы при нажатии какой-либо кнопки в диалоге контента главная страница или страница, которая вызвала диалог контента, получали событие.

Я нашел несколько примеров об этом в Stackoverflow, как и на других форумах, но я использую, чтобы получить то, что я сказал, это one . У меня возникли некоторые проблемы при создании сборщика событий, и потому что я впервые пытаюсь сделать что-то подобное, я немного потерян в реализации.

Это мой код:

someClass.cs

public class updatedDB 
{

        public enum updateType
        {
            Delete, Update, None
        }


        private updateType _updateType;
        private bool _isUpdated;
        private int _ID;

        private bool IsUpdated
        {
            get { return _isUpdated; }
            set
            {
                _isUpdated = value;
                ValueChanged?.Invoke(value);
            }
        }

        public void NotifyUpdate(int ID, updateType UpdateType)
        {
            if (UpdateType == updateType.None)
                return;
            else
            {
                IsUpdated   = true;
                _ID         = ID;
                _updateType = UpdateType;
            }

        }


        public updateType GetUpdateType()
        {
            return _updateType;
        }

        public int GetUpdatedID()
        {
            return _ID;
        }

        public event ValueChangedEventHandler ValueChanged;
    }

    public delegate void ValueChangedEventHandler(bool value);

И это обработчик событий в другом файле .cs (Page.cs):

    public Page()
    {
        this.InitializeComponent();

        HardwareButtons.BackPressed += HardwareButtons_BackPressed;

        UpdateEvent.ValueChanged += UpdateSpots;
    }

    private ValueChangedEventHandler UpdateSpots(bool value)
    {
        ValueChangedEventHandler handler = new ValueChangedEventHandler(value);
        return handler;
    }

В настоящее время у меня есть две части этого кода, подчеркнутые красным и Я не знаю, как их исправить:

UpdateEvent.ValueChanged += **UpdateSpots**;

UpdateSpots дает мне «неверный тип значения» (переводится на английский язык sh с моего языка VS GUI).

И,

ValueChangedEventHandler handler = new ValueChangedEventHandler(**value**);

дает мне сообщение об «ожидании имени метода».

Заранее спасибо.

...