2015-01-26 2 views
0

У меня проблема с этим следующий код:System.Collections.Generic.KeyNotFoundException в Windows Phone

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 от. Как я могу узнать, является ли переменная «Не найдена», что приложение переходит на другую страницу? Как я могу решить проблему?

+1

Я полагаю, он говорит, что это - нет ключа, который является «именем» – libik

+0

Я думаю, что нам понадобится дополнительная информация здесь. Не могли бы вы предоставить немного больше контекста, возможно, [небольшой автономный пример] (http://stackoverflow.com/help/mcve) проблемы. Кроме того, какой язык программирования это? Пожалуйста, отметьте свой вопрос, чтобы указать это, так как это облегчит другим пользователям поиск/ответ на ваш вопрос. – GoBusto

+0

У меня есть сейчас редактирование – saaami11

ответ

5

Если вы хотите знать, существует ли ключ перед чтением, вы можете использовать метод 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.

+0

Да, я ищу! Спасибо! – saaami11

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