c# – 即使对象不为null,也会发生NullReference异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 即使对象不为null,也会发生NullReference异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1585字,纯文字阅读大概需要3分钟。
内容图文
![c# – 即使对象不为null,也会发生NullReference异常](/upload/InfoBanner/zyjiaocheng/816/771c5269da444a0d99424aaad7b1bcea.jpg)
我是wpf的新手;我正在使用可编辑的comboBox(用于搜索目的).
更改ComboBox中的文本时,搜索结果将显示在数据网格下方.当选择数据网格中的任何行时,其值将显示在文本框中以进行编辑.
当我在组合框中写一些东西时,相关的行显示在数据网格中,但是当我单击以选择一行时,应用程序会抛出一个null引用异常.
当dataGrid刷新逻辑位于按钮单击后面时,我的应用程序正常工作.
dataGrid的“SelectionChange”事件的代码是:
private void CategoryRowSelected(object sender, System.Windows.Controls.SelectedCellsChangedEventArgs e)
{
ClearForm();
if(CategoryDataGrid.SelectedItem!=null)
{
categoryMember = CategoryDataGrid.SelectedItem as CategoryTbl; // value assigned to the object
// if (categoryMember != null)
CategoryName.Text = categoryMember.CategoryName; //Exception thrown on this statement
CategoryDescription.Text = categoryMember.CategoryDescription;
}
}
和ComboBox的textChange事件的代码是:
private void RefreshDataGrid(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
CategoryDataGrid.SelectedIndex = -1;
//CategoryDataGrid.ItemsSource = RefreshQuery;
CategoryDataGrid.ItemsSource= Admin.RefreshCategoryDataGrid(NameCombo.Text);
}
解决方法:
CategoryName.Text = categoryMember.CategoryName; //Exception thrown on this statement
这可能由于多种原因而发生 – 不仅仅因为categoryMember为null.如果出现以下情况也会发生
> categoryMember.CategoryName(CategoryName属性本身)返回null,因为如果将值设置为null,则TextBox.Text和类似属性会引发异常.
> CategoryName(控件)为null
另外,我看到你有一个空检查(用于调试?),但它被注释掉了.如果CategoryDataGrid.SelectedItem不能分配给CategoryTbl,则您将在categoryMember本身中收到null.
内容总结
以上是互联网集市为您收集整理的c# – 即使对象不为null,也会发生NullReference异常全部内容,希望文章能够帮你解决c# – 即使对象不为null,也会发生NullReference异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。