0

WPFユーザーコントロールにデータグリッド(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;
        }
    }
4

1 に答える 1

0

例外は、それが であることを示していthis.dg_VQますnull。そのフィールドを実際の値に設定したことを確認するかロジックを

if (this.dg_VQ != null)
{
    ...
}

これは元の問題を解決しませんがNullReferenceException、コード内の a を防ぎます。

于 2013-03-13T16:13:45.607 に答える