簡體   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