0

例外スタックの先頭は次のとおりです。

    System.NullReferenceException: Object reference not set to an instance of an object.
     at xx.TblQcLotListSelectionChanged(Object sender, SelectionChangedEventArgs e) in ...\InternalEventHandlerQCPage.cs:line 441
     at xx.QCLotListPageLeftLoaded(Object sender, RoutedEventArgs e) in ...\InternalEventHandlerQCPage.cs:line 435

これは、InternalEventHandlerQCPage.cs の言及された部分です。

    private void QCLotListPageLeftLoaded(object sender, RoutedEventArgs e)
    {
        this.QCPage.QCShowRangesTblHitTest = true;
        this.QCPage.QCShowRangesTblEnabled = true;
        this.QCPage.LOTListRightTxtNameEnabled = false;
        this.QCPage.LOTListFieldEnabled = false;
        this.QCPage.LOTListNumberDateEnabled = false;

        TblQcLotListSelectionChanged(null, null); //line 435
    }

    private void TblQcLotListSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (this._QCLotListPageLeftXAML.tblLotList.SelectedItems.Count == 0) //line 441
        {
            this.QCPage.LOTListRightBtnUpEnabled = false;
            this.QCPage.LOTListRightBtnDownEnabled = false;

            this.QCPage.QCShowRangesBtnUpEnabled = false;
            this.QCPage.QCShowRangesBtnDownEnabled = false;

            ...

「これ」は UserControl です。_QCLotListPageLeftXAML は、TabControl 内のページで使用される UserControl でもあります tblLotList は WPF DataGrid QCPage は、バインディングの依存関係プロパティのみを含む依存オブジェクトです

データグリッドに 300 個のアイテムがあったときにこの例外が発生しました。これは、設定した許容最大数です。データグリッドは4列あるのでそんなに重くはないです... また、ソフトウェアはしばらく前から動いていたので、sw起動時は発生していません。

ここで何がうまくいかないのか分かりますか?SelectedItems は DataGrid で null にできますか?

4

2 に答える 2

0

これを行ったときにエラーが引き続き発生する場合は、次のことを試してください。

if (this._QCLotListPageLeftXAML.tblLotList.SelectedItems != null &&
    this._QCLotListPageLeftXAML.tblLotList.SelectedItems.Count == 0)
{

}
于 2013-03-07T11:43:17.433 に答える
0

問題が解決しました。リリースされ、コンパイルされたアプリケーションが、実際に例外を引き起こした行以外のスタック内の別の行について不平を言ったという別のケースもありました。

于 2013-03-14T07:47:30.180 に答える