我正在使用Microsoft.Phone.Controls.DatePicker在我的表单中选择一个日期。每次我选择日期并按“确定”时,整个页面都会重新加载。选择日期后,有什么方法可以用来避免我的应用程序中的page_load。 谢谢。
答案 0 :(得分:2)
这对我有用:在OnNavigatedTo方法中,只有在您第一次加载页面时才运行所需的功能。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.NavigationMode == NavigationMode.New)
{
// Your code here
}
}
答案 1 :(得分:1)
在幕后,您实际上是以与使用NavigationService相同的方式导航到页面。如果您在OnNavigatedTo或Loaded中重新绘制UI,请考虑不再这样做,因为在DatePicker关闭时会调用这些UI。
答案 2 :(得分:1)
上周我遇到了同样的情况,我使用一个简单的布尔来解决它,检查你是第一次导航到该页面还是从DatePicker页面导航。
public bool firstEdit { get; set; }
public TripEditVIew()
{
firstEdit = true;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (firstEdit)
{
// init your page...
firstEdit = false;
}
}
我创建了一个名为firstEdit的属性,我在构造函数中将其设置为true。 当您第一次导航到该视图时,您将触发OnNavigatedTo函数,您将能够使用您的初始化代码初始化您的页面。 不要忘记在初始化代码的末尾将boolen属性设置为false。
当你从DatePicker页面返回时,你也会触发OnNavigatedTo函数,但这次不会做任何事情。