Передать значение из пользовательского элемента управления (всплывающее окно) на текущую страницу Windows Phone 7 - PullRequest
0 голосов
/ 22 июля 2011

На главной странице я использую это, чтобы открыть пользовательский элемент управления Login.xaml:

myPopup = new Popup() { IsOpen = true, Child = new Login() };

Я хочу ввести информацию в пользовательский элемент управления Login и передать это значение на главную страницу для обработки, как я могу это сделать? Я знаю, как использовать OnNavigateTo и From для передачи значения на другую страницу, но в этом случае это не сработает, поскольку всплывающее окно фактически располагается поверх главной страницы, поэтому оно никуда не перемещается.

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Для этого нужно использовать события:

var login = new Login();
login.Completed += (a, b) =>
    {
        // retrieve login.Data
        // close popup
    };
myPopup = new Popup() { IsOpen = true, Child = login };

и логин пользователя:

{
    ...
    public event EventHandler Completed;
    void OnCompleted
    {
        var h = Completed;
        if (h!= null) h(this, new EventArgs());
    }
}

не забудьте вызвать OnCompleted () при входе в систему, где ему удобно (например, обработчик кнопки ОК)

1 голос
/ 22 июля 2011

Ну, вы можете просто использовать некоторую глобальную переменную. Однако использование глобалов очень плохой дизайн. Лучше использовать, например, шаблон Event Aggregator. Читайте об этом здесь , здесь или здесь .

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