我在WPF用户控件中有一个datagrid(DevExpress)
dg_VQ是数据网格名称
我有一个列表框lst_REQ_LIST
在SelectionChanged中,我重新加载2个数据网格
_load_data中的行 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;
}
}
答案 0 :(得分:0)
例外情况告诉您this.dg_VQ
是null
。确保您已将该字段设置为实际值,或使用
if (this.dg_VQ != null)
{
...
}
这不会解决原始问题,但会阻止代码中出现NullReferenceException
。