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