【发布时间】:2013-02-12 05:54:09
【问题描述】:
我正在尝试根据组合框的选定值显示标签。我用的是VS2010。
代码如下:
private void pointsSettings_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (this.pointsSettings.SelectedValue.ToString() == "between")
{
pointsAboveLabel.Visibility = Visibility.Collapsed;
}
else
{
pointsAboveLabel.Visibility = Visibility.Visible;
}
}
还有 XAML:
<ComboBox Name="pointsSettings" SelectionChanged="pointsSettings_SelectionChanged">
<ComboBoxItem Content="between" />
<ComboBoxItem Content="above" IsSelected="True" />
<ComboBoxItem Content="below" />
</ComboBox>
<Label Content="points" Name="pointsAboveLabel" />
<Label Content="and" Name="pointsBetweenLabel" Visibility="Collapsed" />
这是我得到的错误: 文本内容为:“对象引用未设置为对象的实例”。
我知道还有另一个与此非常相似的问题 - 实际上有相同的错误 - 但是提供的解决方案(将变量初始化移动到 InitializeComponent() 方法调用之上)不适合我,因为我没有对象初始化。
非常感谢任何和所有帮助。
【问题讨论】:
-
NullReferenceException的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。 -
@JohnSaunders 谢谢。我真的应该开始独立调试,然后只问我是否需要帮助。尽管在这种情况下我可能仍然会问,因为我假设事件处理程序在所有 XAML 都已执行后运行。我会收藏那个链接,我觉得它可能会派上用场...
-
请注意,下面@BrianS 的回答几乎说明了我的链接所说的内容:变量未初始化。他回答说它没有被初始化的原因是UI还没有初始化它。
标签: c# wpf xaml label visibility