[英]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.