将文本框文本分配给文本块 - System.NullReferenceException:"未设置对象引用..."



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

我需要拿TextBox txtKG.Text并传递给txtDescription.Text

假设我必须以某种方式创建 TextBox 类的实例,但我被这个错误困了 2 天。我已经尝试了很多方法,但我不知道该怎么做。

错误信息:

System.NullReferenceException:"对象引用未设置为对象的实例。

我的 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
       }

问题出在滑块值更改事件中,由于控件尚未加载(XAML 中的文本块(,因此会发生错误,作为一种解决方法(我在我的一些项目中这样做(,您可以使用如下所示的 try-catch 语句封装该方法:

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

最新更新