InitializeComponent()方法中的WPF NullRefrence异常

时间:2011-10-14 12:52:48

标签: wpf

我遇到了WPF,Framework 4.0 Profile和Intel HD板载视频卡的问题。创建新窗口时,在InitializeComponent()方法中会出现NullReference异常。

    public override void Execute(object parameter)
    {
        InfoPage infoPage = new InfoPage(Owner);
        infoPage.ShowDialog();
    }

由于infoPage变量为NULL,因此发生异常。当我尝试初始化其他窗口时,行为是相同的。

当用户点击“InfoPage”按钮时,将调用Execute方法。包含execute方法的类继承了ICommand基类。

internal class InfoPageCommand : UICommand
{
    #region Public Methods

    public override void Execute(object parameter)
    {
        InfoPage infoPage = new InfoPage(Owner);
        infoPage.ShowDialog();
    }

    #endregion
}

1 个答案:

答案 0 :(得分:0)

同样的事发生在我身上。我按照@townsean的说法打开了CLR Exceptions。然后调试显示异常发生的位置(之前没有显示调试点)。它是ValueChanged控件的Slider事件处理程序。我正在其代码中直接访问其他一些控件。因此,我必须为这些控件添加空检查。

对我来说,在我更改了滑块的默认值后,错误开始出现。 (事件处理程序在调用时似乎是合乎逻辑的。)

private void slAddRemove_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    if (tbAdd != null && sender.Equals(slAdd))
    {
        tbAdd.Text = slAdd.Value.ToString();
    }

    if (tbRemove != null && sender.Equals(slRemove))
    {
        tbRemove.Text = slRemove.Value.ToString();
    }
}

添加tbAdd != nulltbRemove != null后,错误未发生。