将 TextBox 文本分配给 TextBlock - System.NullReferenceException: „Object 引用未设置 ...”

Assign TextBox text to TextBlock - System.NullReferenceException: „Object reference not set ..."

C# UWP 应用程序 XAML(Body 质量指数计算器 - BMI)

我需要把 TextBox txtKG.Text 传给 txtDescription.Text

我假设我必须以某种方式创建 TextBox Class 的实例,但我在这个错误上停留了 2 天。我试过很多方法,但我不知道该怎么做。

错误信息:

System.NullReferenceException:“Object 引用未设置为 object 的实例。”

我的 XAML 段:

<Slider x:Name="sldKG" HorizontalAlignment="Left" Margin="170,306,0,0" VerticalAlignment="Top" Width="184" ValueChanged="Slider_ValueChanged" Minimum="40" Maximum="150" Value="70"/>

<TextBox x:Name="txtKG" FontSize="18" HorizontalAlignment="Left" Margin="50,310,0,0" VerticalAlignment="Top" TextAlignment="Center" Text="{Binding ElementName=sldKG,Path=Value}"/>

<TextBlock FontSize="18" x:Name="kg" HorizontalAlignment="Left" Margin="121,316,0,0" Text="kg" TextWrapping="Wrap" VerticalAlignment="Top"/>
<Slider x:Name="sldCM" HorizontalAlignment="Left" Margin="170,366,0,0" VerticalAlignment="Top" Width="184" ValueChanged="Slider_ValueChanged" Minimum="145" Maximum="240" Value="170"/>

<TextBlock FontSize="18" x:Name="txtDescription" HorizontalAlignment="Left" Margin="52,499,0,0" Text="Type Your parameters and i wil show Your BMI" TextWrapping="Wrap" VerticalAlignment="Top" Height="96" Width="302" TextAlignment="Center"/>

MyPage.xaml.cs

namespace Kalkulator_BMI_UWP
{   
    public sealed partial class MainPage : Page  
    {            
        public MainPage()
        {
            this.InitializeComponent();
}

private void Slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
txtDescription.Text = txtKG.Text;   // <!-- HERE IS THIS ERROR
       }

问题出在 Slider 值更改事件上,由于尚未加载控件(XAML 中的 TextBlocks)而发生错误, 作为一种解决方法(我在我的一些项目中这样做),你可以用这样的 try-catch 语句封装该方法:

private void Slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
   try
   {
       txtDescription.Text = txtKG.Text;
   }
   catch { }
}