簡體   English   中英

在后面的代碼中設置TextBlock文本將提供NullReferenceException

[英]Setting TextBlock Text in Code Behind Gives NullReferenceException

我的頁面上有一個TextBlock控件,我想在其中的代碼中設置該值,但是卻收到了NullReferenceException TextBlock的值根據滑塊控件的當前位置而變化。 注意,發生錯誤時,頁面永遠不會完全導航到。 我不確定該如何解決,有什么想法嗎?

XAML

<TextBlock x:Name="OpacityNumberTextBlock" HorizontalAlignment="Center">
<Slider x:Name="MenuOpacitySlider"  Minimum="1" Maximum="6" Margin="12,20,12,0" 
                    ValueChanged="MenuOpacitySlider_ValueChanged" Value="1"/>

背后的代碼

public void MenuOpacitySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        Slider slider = sender as Slider;

        //Round the value so it is a whole number even when the slider is dragged
        slider.Value = Math.Round(slider.Value);

        num = (int)slider.Value;

        switch (num)
        {
            case 1:
                OpacityNumberTextBlock.Text = "1"; //NullReferenceException
                break;
            ..
        }
    }

TextBlock為null時,在InitializeComponent()觸發ValueChanged InitializeComponent()之后訂閱:

在XAML中:

<TextBlock x:Name="OpacityNumberTextBlock" HorizontalAlignment="Center"/>
<Slider x:Name="MenuOpacitySlider"  Minimum="1" Maximum="6" Margin="12,20,12,0" Value="1"/>

在后面的代碼中:

public MainPage()
{
    InitializeComponent();
    MenuOpacitySlider.ValueChanged+=MenuOpacitySlider_ValueChanged;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM