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;

            ...

“this”是一个用户控件。_QCLotListPageLeftXAML 也是在 TabControl 内的页面上使用的 UserControl tblLotList 是 WPF DataGrid QCPage 是仅包含绑定的依赖属性的依赖对象

当数据网格有 300 个项目时,我们得到了这个异常,这是我们设置的允许的最大值。数据网格有 4 列,所以它不是那么重......而且该软件之前已经运行了一段时间,所以这在 sw 启动时没有发生。

你知道这里会出现什么问题吗?对于 DataGrid,SelectedItems 可以为空吗?

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 回答