C# 为什么通过按钮单击事件选择列表框中的复选框时出现NullReferenceException?

C# 为什么通过按钮单击事件选择列表框中的复选框时出现NullReferenceException?,c#,.net,visual-studio-2010,C#,.net,Visual Studio 2010,这里的按钮名是y,lbox是我动态添加复选框的列表框。按钮y也动态添加到列表框中 对于上面代码中的button click事件,它表示NullReferenceException,从断点处可以看出,lbox.SelectedItem为Null。如果在lboxSelectionChanged事件中实现相同的代码,则工作正常,lbox.SelectedItem不为Null 我的实现出了什么问题?如果未能转换为所需的类型,它将返回null。这里最可能发生的情况是您的lbox.SelectedItem不

这里的按钮名是y,lbox是我动态添加复选框的列表框。按钮y也动态添加到列表框中

对于上面代码中的button click事件,它表示
NullReferenceException
,从断点处可以看出,lbox.SelectedItem为Null。如果在lboxSelectionChanged事件中实现相同的代码,则工作正常,lbox.SelectedItem不为Null

我的实现出了什么问题?

如果未能转换为所需的类型,它将返回
null
。这里最可能发生的情况是您的
lbox.SelectedItem
不是
复选框,或者它是
null
。在尝试获取其
IsChecked
属性之前,应检查
che
是否为null

 void y_Click(object sender, RoutedEventArgs e)
    {

        CheckBox che = lbox.SelectedItem as CheckBox;

        if ((bool)che.IsChecked)
        {
            MessageBox.Show(che.Content.ToString());
        }
    }
void y\u单击(对象发送方,路由目标)
{
check che=lbox.SelectedItem作为复选框;
如果(che==null)return;//如果未能强制转换为所需类型,则返回
null
。这里最可能发生的情况是您的
lbox.SelectedItem
不是
复选框,或者它是
null
。在尝试获取其
IsChecked
属性之前,应检查
che
是否为null

 void y_Click(object sender, RoutedEventArgs e)
    {

        CheckBox che = lbox.SelectedItem as CheckBox;

        if ((bool)che.IsChecked)
        {
            MessageBox.Show(che.Content.ToString());
        }
    }
void y\u单击(对象发送方,路由目标)
{
check che=lbox.SelectedItem作为复选框;

如果(che==null)return;//实际检查的内容与listbox的selectionchanged事件不同。复选框的选中并不意味着listbox已进行选择。 我发现,每当我点击一个复选框内容时,选择就会改变,但当复选框被选中时,选择就不会改变。
所以,这就是问题所在。

实际检查的问题与listbox的selectionchanged事件不同。选中复选框并不意味着已经选择了listbox。 我发现,每当我点击一个复选框内容时,选择就会改变,但当复选框被选中时,选择就不会改变。
这就是问题所在。

你在那里有选择吗?是..我选中了复选框,然后单击了按钮。你在那里有选择吗?是..我选中了复选框,然后单击了按钮button@Indish我不知道,这是由你调试和解决的。设置断点并逐步完成代码。调试器是你最好的朋友。@indsh我不知道要知道,这是由您调试和解决的。设置断点并逐步完成代码。调试器是您最好的朋友。