Используя WinRT, я пытаюсь внедрить навигацию на основе ввода пользователей. Я попытался использовать переменную тип страницы в методе навигации. К сожалению, он не похож на то, что он принимает переменные как тип страницы. Кто-нибудь знает об этом?
object myPage = page2;
this.Frame.Navigate(typeof(myPage));
Я мог бы просто создать инструкции switch и поместить всю инструкцию в каждое утверждение, но это кажется неуклюжим и трудным для поддержания, тем более, что у меня может быть много типов страниц.
Любая помощь будет оценена по достоинству. Спасибо.
Изменение: немного разъяснений. Я пишу программу викторины, которая хранит викторины в списке, однако это несколько типов викторин, которые требуют определенных форматов страниц, поэтому мне нужны разные типы страниц. Я сохраняю тип страницы как строку в списке, и список рандомизирован, поэтому я не знаю тип следующей страницы из текущего теста. Двигатель викторины предварительно прочитает следующую викторину в очереди и извлечет тип страницы и создаст переменную для вставки в команду this.Frame.Navigate. Вот где я столкнулся с проблемой. Любые идеи о том, как обойти эту проблему?
благодаря
Нет никакого типа "переменной". var
просто позволяет вам писать меньше кода. Компилятор заменяет тип возвращаемого выражения как тип переменной, там нет "магии".
Вы можете написать так:
object myPage;
if (???)
myPage = new Page1();
else
myPage = new Page2();
this.Frame.Navigate(myPage.GetType());
Если вы хотите внедрить навигацию на основе пользовательского ввода, вам обязательно нужно использовать оператор if или switch. Вам необходимо передать тип страницы методу Navigate()
. Я действительно не понимаю, что вы пытались сделать с приведенным выше кодом. Я бы сделал это, используя простой оператор if.