Windows phone 7 将值从用户控件(弹出窗口)传递到当前页面windows phone 7
在主页上,我使用此选项打开用户控件Login.xaml:Windows phone 7 将值从用户控件(弹出窗口)传递到当前页面windows phone 7,windows-phone-7,user-controls,parameter-passing,Windows Phone 7,User Controls,Parameter Passing,在主页上,我使用此选项打开用户控件Login.xaml: myPopup = new Popup() { IsOpen = true, Child = new Login() }; 我想在登录用户控件中输入信息,并将该值传递回Mainpage进行处理,我如何才能做到这一点?我知道如何使用OnNavigateTo和From将值传递到其他页面,但在这种情况下它不起作用,因为弹出窗口实际上位于主页的顶部,所以它不会在任何地方导航。好吧,您可以使用一些全局变量。然而,使用globals是非常糟糕的设计
myPopup = new Popup() { IsOpen = true, Child = new Login() };
我想在登录用户控件中输入信息,并将该值传递回Mainpage进行处理,我如何才能做到这一点?我知道如何使用OnNavigateTo和From将值传递到其他页面,但在这种情况下它不起作用,因为弹出窗口实际上位于主页的顶部,所以它不会在任何地方导航。好吧,您可以使用一些全局变量。然而,使用globals是非常糟糕的设计。更好的选择是使用例如事件聚合器模式。阅读相关信息,或者。您需要使用事件:
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()(例如OK按钮处理程序)