1

当启动时出现以下代码时,我收到错误“引用未设置为对象的实例”:

  switch (Popup_Data_Type_ComboBox.SelectedItem.ToString())
            {

我很确定这个错误正在发生,因为 Popup_Data_Type_ComboBox 尚未创建,因此无法获取 sting 值。我怎样才能解决这个问题?

好的,非常感谢我在检查 Popup_Data_Type_ComboBox.SelectedItem == null 时提供的所有帮助,现在它工作正常

4

3 回答 3

1

最可能的问题是您的组合框尚未创建,或者没有选定的项目。在这种情况下,您必须明确处理:

if (Popup_Data_Type_ComboBox != null && Popup_Data_Type_ComboBox.SelectedItem != null)
{
    switch (Popup_Data_Type_ComboBox.SelectedItem.ToString())
    {
        //... 
    }
}
else
{
   // Do your initialization with no selected item here...
}
于 2013-06-26T18:15:35.733 回答
1

我首先验证 Popup_Data_Type_ComboBox 是否已实例化,然后验证是否选择了一个项目。如果您按照您所说的那样在启动时运行它,那么很可能没有选择任何项目。你可以检查:

if(Popup_Data_Type_ComboBox.SelectedItem != null)
{
    switch (Popup_Data_Type_ComboBox.SelectedItem.ToString())
        {
            //.....
        }
 }
于 2013-06-26T18:16:20.043 回答
1

在切换之前添加一个检查,假设代码在一个只处理Popup_Data_Type_ComboBox.SelectionChanged-event 或类似事件的方法中:

if (Popup_Data_Type_ComboBox == null 
    || Popup_Data_Type_ComboBox.SelectedIndex < 0)
{
    // Just return from the method, do nothing more.
    return;
}

switch (...)
{

}
于 2013-06-26T18:16:26.853 回答