Установка свойства Textblock.Text в WPF создает исключение NullReferenceException - PullRequest
0 голосов
/ 13 июля 2011
textBlock.Text = "Text";

Это мой код, и он не показывает ошибок. но когда я запускаю его, я получаю NullReferenceException

Object reference not set to an instance of an object.

Это утверждение находится внутри события ValueChanged ползунка, если оно имеет значение.

Ответы [ 4 ]

7 голосов
/ 13 июля 2011

Я предполагаю, что этот код находится в вашем конструкторе. Убедитесь, что InitializeComponents вызван перед выполнением этой строки:

public YourWindow()
{
    TextBlock.Text = "Text"; // <- bad
    InitializeComponents();
    TextBlock.Text = "Text"; // <- good
}
1 голос
/ 03 февраля 2013

Событие «значение изменено» происходит уже внутри вызова InitializeComponent (). Поэтому в вашем алгоритме вам может понадобиться проверить, является ли текстовое поле == нулевым (и ничего не делать, если это правда! ..).

Была такая же проблема, но уже была открыта эта тема, так что .. Уже поздно, но, надеюсь, это скоро поможет кому-то еще:)

1 голос
/ 13 июля 2011

Если это во время компиляции и даже не во время выполнения, похоже, что ваша ссылка на объект Textblock не верна.

Это именно ваш код?Попробуйте следующее в своем XAML:

<TextBlock x:Name="myTextBlock" />

И в своем файле CS:

myTextBlock.Text = "Text";
0 голосов
/ 13 июля 2011

Если ваше определение TextBlock отличается от этого <TextBlock x:Name="TextBlock"/>, то ваша программа вообще не компилируется.

Но если это так, просто убедитесь, что InitializeComponent() в конструкторе вашего окна выполненадо доступа к любому ребенку.

...