我的目的是添加两个按钮,允许用户快速跳转到最后一个项目的第一个。我正在使用MVVM路径,代码非常简单:
Sub ScrollDown()
If ResponseModel.Items.Count > 0 And ResponseModel.IsDataLoaded Then
If ResponseModel.Items.LastOrDefault IsNot Nothing Then ResponseList.ScrollTo(ResponseModel.Items.LastOrDefault())
End If
End Sub
有时这段代码会在最后一行抛出NullReferenceException,是的,End Sub
。这些对象都不是null,所以我无法找出问题所在。
System.NullReferenceException:未将对象引用设置为对象的实例。 at Microsoft.Phone.Controls.LongListSelector.ScrollTo(Object item,Nullable`1 isGroup)at Microsoft.Phone.Controls.LongListSelector.ScrollTo(Object item)at WindowsPhoneAnswers.Thread。 Lambda $ _68()在MS.Internal.JoltHelper的MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex,Delegate handlerDelegate,Object sender,Object args)中的WindowsPhoneAnswers.Thread。 Lambda $ _67(对象a0,EventArgs a1)。 FireEvent(IntPtr unmanagedObj,IntPtr unmanagedObjArgs,Int32 argsTypeIndex,Int32 actualArgsTypeIndex,String eventName)
唯一可能的解释是最后一项尚未实现,但如何检查?
答案 0 :(得分:1)
解决方案听起来也很奇怪。似乎使用Dispatcher
调用方法可以解决问题。
然而,这很奇怪,因为异常是随机提出的,我不在后台线程上。