Пример #1
0
        /// <summary>
        /// Called when a navigator message is received.
        /// </summary>
        /// <param name="message"></param>
        public void OnNavigatorMessage(NavigatorMessage message)
        {
            if (IsDisabled)
            {
                return;
            }

            if (message.MessageType == NavigatorMessageType.Pop)
            {
                Pop();
                return;
            }
            else if (message.MessageType == NavigatorMessageType.Close)
            {
                Close();
                return;
            }

            var view = message.NavigateToView ?? GetViewAtPath(message.NavigateToPath);

            if (message.MessageType == NavigatorMessageType.Push)
            {
                Push(view, message.Data);
            }
            else
            {
                Open(view, message.Data);
            }
        }
Пример #2
0
        /// <summary>
        /// Sends message to all navigators to return to previous view.
        /// </summary>
        public static void Pop(string navigatorId = null)
        {
            // pops view
            var navigatorMessage = new NavigatorMessage {
                MessageType = NavigatorMessageType.Pop
            };

            if (navigatorId != null)
            {
                Messenger.Send(navigatorMessage, navigatorId);
            }
            else
            {
                Messenger.Send(navigatorMessage);
            }
        }
Пример #3
0
        /// <summary>
        /// Sends message to all navigators to navigate to the specified path.
        /// </summary>
        public static void Push(string path, object data = null, string navigatorId = null)
        {
            // navigates to the specified path
            var navigatorMessage = new NavigatorMessage {
                NavigateToPath = path, Data = data, MessageType = NavigatorMessageType.Push
            };

            if (navigatorId != null)
            {
                Messenger.Send(navigatorMessage, navigatorId);
            }
            else
            {
                Messenger.Send(navigatorMessage);
            }
        }