2015-05-05 6 views
0

Я сейчас работаю над окнами 8.1. Приложение и им пытаются установить значение текстового блока, находящегося внутри Сводной страницы. Когда я пытаюсь установить значение текстового блока, я получаю странную ошибку об исключении Null Refrence.Windows Phone 8.1 NullRefrenceException

Кодекс для XAML выглядит следующим образом

<TextBlock x:Name="scoreFinal" Text="0" HorizontalAlignment="Left" Margin="235,408,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="34" Width="97" FontSize="32"/> 

Im с помощью обработчика событий для TextChanged в текстовом поле, чтобы изменить значение TextBlock , используя следующий код

private void score_TextChanged(object sender, TextChangedEventArgs e) 
    { 
     int totalPar=38; 
     int actual=0; 


     // actual = int.Parse(score1.Text) + int.Parse(score2.Text) + int.Parse(score3.Text) + int.Parse(score4.Text) + int.Parse(score5.Text) + int.Parse(score6.Text) + int.Parse(score7.Text) + int.Parse(score8.Text) + int.Parse(score9.Text); 
     if (actual < totalPar) 
     { 


      scoreFinal.Text = ("-" + (totalPar - actual)); 

     } 

Когда я запустите страницу, которую он загружает, и у меня есть значения во всех моих текстовых полях: 0

, но когда я запускаю это и редактирую текст, я получаю следующее сообщение об ошибке

enter image description here

Каждый получил ключ?

+0

Установите точку останова на этой строке, затем просмотрите переменные, чтобы увидеть, что такое 'null'. –

+0

Добро пожаловать в переполнение стека! Почти все случаи «NullReferenceException» одинаковы. См. «[Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)» для некоторых советов. –

+0

John Вы ведете меня в правильном направлении. Я знал, что такое NullRefrence, но я не знал, почему это так. Согласно документации, которую я читал, я верил, что, поскольку она была в XAML, она должна быть создана. По-видимому, это не так. Я не знаю, почему я думал об этом, но я это сделал. Поэтому, проверяя, было ли оно нулевым, а затем просто создание его действительно помогло, но я думаю, что создав его так, как я сделал, это не совсем правильно с момента создания нового текстового блока. – Hunter

ответ

-2

В вашем XAML-коде отсутствует событие TextChanged. Надеюсь, он не создан.

<TextBlock x:Name="scoreFinal" Text="0" HorizontalAlignment="Left" Margin="235,408,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="34" Width="97" FontSize="32" TextChanged="score_TextChanged"/> 
+0

Так как его код когда-либо назывался? –

+0

Существует текстовое поле с обработчиком событий TextChanged ' ' – Hunter

+0

Его XAML предназначен для другого управления. – Nacimota

0

Существует возможность для scoreFinal управления не инициализируется, когда score_TextChanged событие увольняют.

Попробуйте подключить TextChanged к событию с загрузкой страницы.

void YourPage_Loaded(object sender, RoutedEventArgs e) 
     { 
     score2.TextChanged+=score_TextChanged; 

     } 

Также не забудьте удалить обработчик событий из XAML.