繁体   English   中英

刷新wp8中的当前页面,

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM