[英]Refresh current page in wp8,
我正在尝试刷新当前页面,但无法执行此操作。 基本上,我使用了用户控件并继承了另一个用户控件。 按钮单击事件正常运行。 但不刷新页面。
Page = (Application.Current.RootVisual as Frame).Content as Page;
string u = Convert.ToString(Page.NavigationService.CurrentSource);
Page.NavigationService.Navigate(new Uri(u, UriKind.Relative));
这里的问题是您不能在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);
它将起作用。
只要在任何需要的事件上输入您想要的页面即可刷新页面
NavigationService.Navigate(new Uri("/pagetorefresh.xaml", UriKind.Relative));
当您想从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接收通知。 请参阅Windows Phone 8的数据绑定
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.