将 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 { }
}
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 { }
}