C# 刷新wp8中的当前页面,

C# 刷新wp8中的当前页面,,c#,asp.net,windows-phone-8,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.Relat

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

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

只要在任何事件中输入您想要的页面,它就会刷新页面

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

您是否尝试删除了
后台备份

NavigationService.RemoveBackEntry();


这里的问题是您不能在
UserControl
中使用导航,它必须来自
页面
。 因此,在用户控件中创建如下事件处理程序

public event EventHandler Refresh;
现在,在您的页面中,将其
句柄设置为

MyUserControl.Refresh += UserControl_Refresh;

void MyUserControl_Refresh(object sender, EventArgs e)
{
    //refresh logic here
}
然后在
UserControl
中,根据需要调用此
事件

Refresh.Invoke(this, null);

当你想从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触发页面中的事件,或者进行数据绑定


数据绑定是最好的方法,当Usercontrol发生某些更改时,可以使用INotifyPropertyChanged获得通知。请参见

不工作获取错误对象引用,因为它位于usercontrol中尝试将此代码置于usercontrol之外的任何简单按钮单击事件上,并检查它是否工作。我正在尝试刷新当前页面