Уведомить родительскую страницу с дочерней страницы - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю приложение, используя UWP, и у меня есть MainPage.cs, который содержит элемент управления Frame, в который я загружаю разные дочерние страницы. Я хотел бы передать слушателю дочернюю страницу, чтобы уведомить мою родительскую страницу о событии, которое происходит в дочернем элементе. На Android я бы передавал прослушиватель обратного вызова, который мне нужно будет вызывать на подстраницах, чтобы я мог получать уведомления в parentl. Проблема заключается в том, что страницы запускаются Frame.Navigate (typeOf (LoginPage)), для которого я не могу установить обратный вызов поскольку страница входа не является ссылкой / объектом, а является классом типа.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 апреля 2019

Кажется, что MainPage - это экземпляр-одиночка. В таком случае вы можете просто открыть этот экземпляр, создав свойство static MainPage Instance в MainPage и установив его в своем конструкторе. Тогда вы можете получить доступ к MainPage напрямую с любой другой страницы.

Однако правильным решением было бы использование инфраструктуры MVVM, а вместо обмена данными между представлениями непосредственно помещать связь в модели представлений. В MVVM у вас обычно есть своего рода навигационная служба , которая позволяет передавать параметры / возвращаемые значения, а также вы можете иметь агрегатор событий для выдачи сообщений, на которые могут подписаться другие компоненты. Хорошими примерами сред MVVM являются MvvmCross, MvvmLight и Prism. Определенно стоит научиться использовать и интегрировать их на раннем этапе, потому что это значительно облегчит вашу жизнь с точки зрения сопровождения кода в долгосрочной перспективе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...