LongListSelector奇怪的行为

时间:2014-04-11 17:06:16

标签: vb.net silverlight windows-phone-8

我的目的是添加两个按钮,允许用户快速跳转到最后一个项目的第一个。我正在使用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)

唯一可能的解释是最后一项尚未实现,但如何检查?

1 个答案:

答案 0 :(得分:1)

解决方案听起来也很奇怪。似乎使用Dispatcher调用方法可以解决问题。 然而,这很奇怪,因为异常是随机提出的,我不在后台线程上。