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

时间:2014-09-04 04:42:02

标签: c# windows-runtime

使用WinRT,我试图根据用户输入实现导航。我试图在Navigate方法中使用变量页面类型。不幸的是,它似乎不接受变量作为页面类型。有人知道解决这个问题吗?

object myPage = page2;

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

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

任何帮助将不胜感激。 谢谢。

编辑:稍微澄清一下。我正在编写一个测验程序,将测验存储在List中,但是需要特定页面格式的测试是多种类型,所以我需要不同的页面类型。我将页面类型存储为List中的字符串,并且列表是随机的,因此我不知道当前测试中的下一页类型。测验引擎将预先读取队列中的下一个测验并提取页面类型并创建一个变量以插入this.Frame.Navigate命令。这就是我遇到问题的地方。关于如何解决这个问题的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

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

你可以这样写:

object myPage;

if (???)
    myPage = new Page1();
else
    myPage = new Page2();

this.Frame.Navigate(myPage.GetType());

如果要根据用户的输入实现导航,则定义需要使用if或switch语句。您需要将页面类型传递给Navigate()方法。我真的没有得到你上面的代码所做的事情。我会通过使用简单的if语句来做到这一点。