Обновить текущую страницу в wp8,

1

Я пытаюсь обновить текущую страницу, но не могу это сделать. В основном я использовал пользовательский контроль и наследовал другой пользовательский элемент управления. Событие нажатия кнопки работает правильно. Но не обновляйте страницу.

Page = (Application.Current.RootVisual as Frame).Content as Page;
string u = Convert.ToString(Page.NavigationService.CurrentSource);
Page.NavigationService.Navigate(new Uri(u, UriKind.Relative)); 
Теги:
windows-phone-8

4 ответа

1

Проблема здесь в том, что вы не можете использовать навигацию в 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);

И это сработает.

0

Когда вы хотите перейти на страницу из 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 - лучший подход, и вы можете получать уведомление с помощью INotifyPropertyChanged, когда некоторые изменения происходят с Usercontrol. См. DataBinding для Windows Phone 8

0
  • 0
    Я пытаюсь обновить текущую страницу
  • 0
    что случилось? какие-либо ошибки?
0

просто введите нужную вам страницу на любое событие, которое вы хотите, чтобы оно обновило страницу.

NavigationService.Navigate(new Uri("/pagetorefresh.xaml", UriKind.Relative));
  • 0
    не работает получение ссылки на объект ошибки, потому что это место в usercontrol
  • 0
    попробуйте поместить этот код вне usercontrol на любое простое событие нажатия кнопки и проверьте, работает он или нет
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню