2015-12-27 2 views
2

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

Я создал универсальный проект приложения в визуальной студии и в рамках проекта я создал папку под названием «Страницы», в которой я создал две пустые страницы. Все, что я хочу, - это перейти на главную страницу на страницу. Еще во времена Windows Phone 8.1 я бы использовал навигационные службы и передал им Uri. Теперь, кажется, я должен использовать что-то вдоль линий:

this.Frame.Navigate(typeof(Page1)); 

, не работает вообще - попытался удалить структуру папок и просто перейти на другую пустую страницу, но это, кажется, как «Page1» просто не признается , Что я делаю не так?

Понятно, что я не очень хорошо разбирался в этой проблеме. Вот моя App структура:

enter image description here

Внутри MainPage У меня есть следующий код:

namespace TrainPuzzle 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a  Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     public MainPage() 
     { 
      this.InitializeComponent(); 
      this.Frame.Navigate(typeof(Page1)); 


     } 
    } 
} 

Я попробовал один и тот же код с Pages.Page1 и получил ошибку nullexception. Надеюсь, это имеет смысл.

+0

ошибка времени компиляции - Ошибка \t \t CS0246 Тип или пространство имен «Page1» не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?) – bml

+0

вы, вероятно, нужно, используя заявление для стр.1 имен. Должна быть лампочка, которая появляется, когда вы нажимаете на эту строку кода, которая покажет несколько способов исправить проблему. –

+0

Пробовал использовать это, за исключением того, что затем выбрасывает исключение с нулевой отметкой. Если я создаю экземпляр класса «Страница1», то typeof жалуется, что он не ожидал переменную .... Я собираюсь по кругу. – bml

ответ

2

Вы не можете перемещаться в конструкторе по простой причине: This.Frame по-прежнему не имеет значения. Он устанавливается после того, как страница была перенесена на фрейм, который для этого имеет экземпляр уже.

Таким образом, вы можете перемещаться по событию Loaded.

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

Кроме того, после активации NavigationCache конструктор не вызывается во второй раз, когда отображается страница, поэтому вам следует избегать слишком много логики.

Смежные вопросы