在Frame.Navigate中使用可变页面类型

本文关键字:类型 Frame Navigate | 更新日期: 2023-09-27 18:20:39

使用WinRT,我试图实现基于用户输入的导航。我尝试在Navigate方法中使用可变页面类型。不幸的是,它看起来不像是接受变量作为页面类型。有人知道这方面的办法吗?

object myPage = page2;
this.Frame.Navigate(typeof(myPage));

我可以创建switch语句,并将整个指令放在每个语句中,但这似乎很笨拙,很难维护,尤其是因为我最终可能会有大量的页面类型。

如有任何帮助,我们将不胜感激。非常感谢。

编辑:稍微澄清一下。我正在编写一个测试程序,将测试存储在列表中,但是有多种类型的测试需要特定的页面格式,所以我需要不同的页面类型。我将页面类型作为字符串存储在列表中,并且列表是随机的,所以我不知道当前测试中的下一个页面类型。测验引擎将预读队列中的下一个测验,提取页面类型并创建一个变量插入其中。帧。导航命令。这就是我的问题所在。关于如何解决这个问题有什么想法吗?

感谢

在Frame.Navigate中使用可变页面类型

没有任何"变量"类型。var只允许您编写更少的代码。编译器将表达式的返回类型替换为变量类型,并没有"魔术"。

你可以这样写:

object myPage;
if (???)
    myPage = new Page1();
else
    myPage = new Page2();
this.Frame.Navigate(myPage.GetType());

如果您想实现基于用户输入的导航,那么您需要使用If或switch语句。您需要将页面的类型传递给Navigate()方法。我真的不明白你一直在试图用上面的代码做什么。我会使用简单的if语句来完成。