我遇到以下代码的问题:
string name = (string)PhoneApplicationService.Current.State["name"];
names.Add(name);
InitializeComponent();
List.ItemsSource = names;
由:
string name = (string)PhoneApplicationService.Current.State["name"];
我收到了错误消息:
“System.Collections.Generic.KeyNotFoundException”类型的异常 发生在mscorlib.ni.dll但未在用户代码中处理
守则在C#中。 我尝试使用其他页面的Variabel。 我如何询问变量是否“未找到”应用程序跳转到另一个页面? 我该如何解决这个问题?
答案 0 :(得分:7)
如果您想在阅读之前知道该密钥是否存在,您可以使用ContainsKey
方法:
if (PhoneApplicationService.Current.State.ContainsKey("name"))
{
string name = (string)PhoneApplicationService.Current.State["name"];
names.Add(name);
InitializeComponent();
List.ItemsSource = names;
}
else
{
// Whatever
}
此外,您似乎想要在找不到密钥时导航到其他页面。对InitializeComponent
的调用表明您正在执行页面构造函数中的代码。如果您尝试使用构造函数中的NavigationService,则会出现NullReferenceException。将代码移至Loaded
事件,或覆盖OnNavigatedTo
方法。