设置WPF的Textblock.Text属性会抛出NullReferenceException

时间:2011-07-13 11:56:05

标签: c# wpf text textblock

textBlock.Text = "Text";

这是我的代码,它没有显示任何错误。 但是当我运行它时,我得到一个NullReferenceException

Object reference not set to an instance of an object.

此语句位于Slider的ValueChanged事件中,如果重要的话。

4 个答案:

答案 0 :(得分:6)

我假设此代码在您的构造函数中。确保在执行此行之前调用InitializeComponents

public YourWindow()
{
    TextBlock.Text = "Text"; // <- bad
    InitializeComponents();
    TextBlock.Text = "Text"; // <- good
}

答案 1 :(得分:1)

如果这是在编译时,甚至在运行时,似乎你对Textblock对象的引用不对。

这完全是你的代码吗? 在您的XAML中尝试以下内容:

<TextBlock x:Name="myTextBlock" />

在您的CS档案中:

myTextBlock.Text = "Text";

答案 2 :(得分:0)

如果您的TextBlock定义不是此<TextBlock x:Name="TextBlock"/>,那么您的程序根本不会编译。

但如果是这样,那么只需确保在访问任何子项之前执行窗口构造函数中的InitializeComponent()

答案 3 :(得分:0)

“valuechanged”事件已在InitializeComponent()调用中发生。 那么你在算法中可能需要做的就是检查文本框是否== null(如果这是真的,不要做任何事情!)。

有同样的问题,但是已经打开了这个线程......现在已经很晚了,但希望它能很快帮助别人:)