【发布时间】:2015-04-04 19:28:48
【问题描述】:
我有一个类似这样的 XAML 布局:
<Grid>
<TextBox x:Name="inputTextBox" LostFocus="inputTextBox_LostFocus" TextChanged="inputTextBox_TextChanged" GotFocus="inputTextBox_GotFocus" />
<ComboBox x:Name="inputComboBox" SelectionChanged="inputComboBox_SelectionChanged">
<ComboBoxItem IsSelected="True">10</ComboBoxItem>
<ComboBoxItem>15</ComboBoxItem>
<ComboBoxItem>20</ComboBoxItem>
</ComboBox>
<ComboBox x:Name="inputComboBoxTwo" SelectionChanged="inputComboBoxTwo_SelectionChanged">
<ComboBoxItem IsSelected="True">1</ComboBoxItem>
<ComboBoxItem>2</ComboBoxItem>
<ComboBoxItem>3</ComboBoxItem>
</ComboBox>
</Grid>
很简单。在代码隐藏 C# 文件中,我使用这些控件从 TextBox 中获取双精度,从 ComboBoxes 中获取更多整数,然后使用来自控件的数据创建一个计算器类型对象。我进行计算并在其他一些 TextBlocks 中显示结果。
namespace TipCalc
{
public sealed partial class MainPage : Page
{
Calc x = new Calc();
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
}
//
//Appropriate event handlers from XAML controls that all call the calculation method.
//
private void calcIt()
{
x.amt = double.Parse(inputTextBox.Text);
x.cal1 = int.Parse(inputComboBox.SelectedItem.ToString());
x.cal2 = int.Parse(inputComboBoxTwo.SelectedItem.ToString());
//Send calculated values to output TextBlocks.
}
}
}
当我运行这个程序时,我遇到了一个空指针异常,当我尝试访问 TextBox 的 text 属性时会抛出该异常。事实证明,所有 XAML 控件都是空的。但是,_contentLoaded 设置为 true,并且 this.IntializeComponent 的代码定义在幕后看起来是正确的。
为什么我的所有控件都设置为空,而看起来一切正常?如果它们没有被正确地自动初始化,有没有办法手动初始化它们?我做错了什么吗?
【问题讨论】:
标签: c# xaml windows-phone-8