在WP7中更改DatePicker值后页面重新加载

时间:2012-01-03 06:02:34

标签: windows-phone-7 datepicker

我正在使用Microsoft.Phone.Controls.DatePicker在我的表单中选择一个日期。每次我选择日期并按“确定”时,整个页面都会重新加载。选择日期后,有什么方法可以用来避免我的应用程序中的page_load。 谢谢。

3 个答案:

答案 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。

http://www.codebadger.com/blog/post/2010/10/05/WP7-Development-Tip-of-the-Day-Page-Startup-Loaded-event-vs-OnNavigatedTo-method.aspx

答案 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函数,但这次不会做任何事情。