Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我将这行代码添加到组合框选择事件时,InitializeComponent返回一个空引用_C#_Wpf - Fatal编程技术网

C# 当我将这行代码添加到组合框选择事件时,InitializeComponent返回一个空引用

C# 当我将这行代码添加到组合框选择事件时,InitializeComponent返回一个空引用,c#,wpf,C#,Wpf,我的初始化组件;当我将以下行添加到ComboBoxItem选择事件时,line返回错误: namespace NewProject { public partial class Page1 : Page { public Page1 { InitializeComponent(); } private void ComboBoxItem_Selected_1(object sender, Ro

我的初始化组件;当我将以下行添加到ComboBoxItem选择事件时,line返回错误:

namespace NewProject
{
    public partial class Page1 : Page
    {
        public Page1
        {
            InitializeComponent();
        }
        private void ComboBoxItem_Selected_1(object sender, RoutedEventArgs e) //same for ComboBoxItem_Selected_2,3
        {
            TextBlock_ComboBoxes.Text = ("Combo Box Number: 1");
        }
    }
}
我试图根据选择的ComboBoxItem更改TextBlock的文本

XAML代码:

<ComboBox FontFamily="Arial" Grid.ColumnSpan="2">
    <ComboBoxItem Content="Combo Box Number 1" IsSelected="True" Selected="ComboBoxItem_Selected_1"/>
    <ComboBoxItem Content="Combo Box Number 2" Selected="ComboBoxItem_Selected_2"/>
    <ComboBoxItem Content="Combo Box Number 3" Selected="ComboBoxItem_Selected_3"/>
</ComboBox>
<TextBlock x:Name="TextBlock_ComboBoxes" Text="Combo Box Number: 1"/>
此Xaml代码包含在窗口框架内的页面中。以下是页面属性:

<Page x:Class="NewProject.Page1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  mc:Ignorable="d" 
  d:DesignHeight="300" d:DesignWidth="600"
Title="Page 1">
在初始化Component期间,可能会在初始化TextBlock_ComboBox字段之前触发SelectionChanged事件。您应该检查字段是否为空:


请注意,SelectionChanged事件可能在TextBlock_ComboBox字段初始化之前触发。检查它是否为空。@mjwills异常是这样的:System.NullReferenceException:“对象引用未设置为对象的实例”。@Clemens是的,它返回一个空错误,但我应该检查什么,使用非技术术语,因为我是编程新手。@mjwills我已经提供了您要求的代码来复制问题。我将查看此代码是否修复了我的程序。编辑:是的,成功了。非常感谢。是的,成功了!但是我仍然不明白为什么它首先是空的。所有与XAML中的x:Name声明相对应的字段都是由InitializeComponent初始化的,也就是说,在InitializeComponent设置它们之前,它们都是空的。当您的ComboBox在TextBlock之前以XAML声明,并且在初始化期间立即触发SelectionChanged处理程序时,TextBlock字段可能仍然为空。
private void ComboBoxItem_Selected_1(object sender, RoutedEventArgs e)
{
    if (TextBlock_ComboBoxes != null)
    {
        TextBlock_ComboBoxes.Text = ("Combo Box Number: 1");
    }
}