刷新wp8中的当前页面,

时间:2014-11-14 07:19:39

标签: c# asp.net windows-phone-8

我尝试刷新当前页面但无法执行此操作。基本上我使用用户控件并继承到另一个用户控件。按钮单击事件正常工作。但不刷新页面。

Page = (Application.Current.RootVisual as Frame).Content as Page;
string u = Convert.ToString(Page.NavigationService.CurrentSource);
Page.NavigationService.Navigate(new Uri(u, UriKind.Relative)); 

4 个答案:

答案 0 :(得分:1)

此处的问题是您无法在UserControl中使用导航,它必须来自Page。 因此,在您的用户控件中创建一个这样的事件处理程序..

public event EventHandler Refresh;

现在,在您的页面中将Handle设为..

MyUserControl.Refresh += UserControl_Refresh;

void MyUserControl_Refresh(object sender, EventArgs e)
{
    //refresh logic here
}

然后在UserControl中调用此Event,其中

Refresh.Invoke(this, null);

它会起作用。

答案 1 :(得分:0)

只需在您希望刷新页面的任何活动中输入您想要的页面

NavigationService.Navigate(new Uri("/pagetorefresh.xaml", UriKind.Relative));

答案 2 :(得分:0)

答案 3 :(得分:0)

如果要从UserControl导航到页面,则必须执行此操作

 (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/ProjectName;component/Pages/SignatureCapturePage.xaml", UriKind.Relative));        

当您想要导航到页面的新实例(您居住在其中)时,您需要附加新的GUID

(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/ProjectName;component/Pages/SignatureCapturePage.xaml?id="+Guid.NewGuid().ToString(), UriKind.Relative));        

但是你的最终目的是刷新页面而不是导航到新页面,这样你就可以从UserControl触发页面中的事件或者去DataBinding。

DataBinding是最好的方法,当Usercontrol发生一些变化时,您可以使用INotifyPropertyChanged获得通知。见DataBinding for Windows Phone 8