我遇到了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
}
答案 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 != null
和tbRemove != null
后,错误未发生。