C# 数据网格上的NullReferenceException
我在WPF用户控件中有一个datagrid(DevExpress) dg_VQ是数据网格名称 我有一个列表框lst_REQ_list 在SelectionChanged中,我重新加载2个数据网格 加载数据中的行 this.dg_VQ.ItemsSource=null 是发生异常的地方。 这件事的发生方式让我感到困惑 如果我在列表中选择一个项目,无论我选择多少次,它都会工作。 但是,只要我选择了一个在网格中有数据的iem,然后在列表中选择了另一项,就会出现错误 这是愚蠢的部分,如果我在线路上停下来,它就会工作。这几乎就像它在等待另一个线程中完成某件事情,但却没有已知的派生线程。在例行比赛中,接球从不被击中 它只是弹出一个例外的消息框 使用数据类C# 数据网格上的NullReferenceException,c#,wpf,exception,listbox,C#,Wpf,Exception,Listbox,我在WPF用户控件中有一个datagrid(DevExpress) dg_VQ是数据网格名称 我有一个列表框lst_REQ_list 在SelectionChanged中,我重新加载2个数据网格 加载数据中的行 this.dg_VQ.ItemsSource=null 是发生异常的地方。 这件事的发生方式让我感到困惑 如果我在列表中选择一个项目,无论我选择多少次,它都会工作。 但是,只要我选择了一个在网格中有数据的iem,然后在列表中选择了另一项,就会出现错误 这是愚蠢的部分,如果我在线路上停下来
private void lst_REQ_LIST_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (lst_REQ_LIST.SelectedValue == null) { return; }
_selection_changed();
}
private void _selection_changed()
{
string sGUID = lst_REQ_LIST.SelectedValue.ToString().ToUpper();
req_guid = new Guid(sGUID);
quote_guid = new Guid("{00000000-0000-0000-0000-000000000000}");
_load_data();
}
private void _load_data()
{
try
{
// Load the top grid
this.dg_VQ.ItemsSource = null;
this.dg_VQ.ItemsSource = dbP.tbl_vendor_quote_requests
.Where(x => x.requisition_guid == req_guid);
this.dg_VQ.RefreshData();
// Load the bottom grid
this.dg_VQ_DTL.ItemsSource = null;
this.dg_VQ_DTL.ItemsSource = db.tbl_vendor_quote_request_dtls
.Where(x => x.vendor_quote_request_guid == quote_guid)
.OrderBy(x => x.item_number);
this.dg_VQ_DTL.RefreshData();
}
catch (Exception e)
{
throw e;
}
}
例外情况是告诉您,
this.dg_VQ
为null
。确保已将该字段设置为实际值,或用
if (this.dg_VQ != null)
{
...
}
这不会解决原始问题,但会防止代码中出现NullReferenceException