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之外的任何简单按钮单击事件上,并检查它是否工作。我正在尝试刷新当前页面