我有一个Silverlight应用程序,我遇到了问题。
正常加载时页面效果很好 - 通过Web浏览器或安装到桌面时。 当有人点击刷新时,浏览器会出现问题。
当它们点击刷新(F5)时,没有加载数据,控件呈现但数据绑定的是空的。 他们有一个javascript错误,出现在IE的底部。
网页错误详情
消息:未处理的错误 Silverlight Application提供价值 在'System.Windows.Data.Binding'投掷 一个例外。 [线路:74位置:57] 在 MS.Internal.XcpImports.MethodEx(IntPtr的 ptr,String name,CValue [] cvData)
在 MS.Internal.XcpImports.MethodEx(DependencyObject的 obj,String name)at MS.Internal.XcpImports.DataTemplate_LoadContent(DataTemplate中 模板) System.Windows.Controls.DataGridTemplateColumn.GenerateElement(DataGridCell cell,Object dataItem)at System.Windows.Controls.DataGrid.PopulateCellContent(布尔 isCellEdited,DataGridColumn dataGridColumn,DataGridRow dataGridRow,DataGridCell dataGridCell)at System.Windows.Controls.DataGrid.AddNewCellPrivate(DataGridRow row,DataGridColumn列) System.Windows.Controls.DataGrid.CompleteCellsCollection(DataGridRow dataGridRow)at System.Windows.Controls.DataGrid.GenerateRow(的Int32 rowIndex,Int32 slot,Object dataContext)at System.Windows.Controls.DataGrid.InsertElementAt(的Int32 slot,Int32 rowIndex,Object item, DataGridRowGroupInfo groupInfo, Boolean isCollapsed)at System.Windows.Controls.DataGrid.InsertRowAt(的Int32 rowIndex)at System.Windows.Controls.DataGridDataConnection.NotifyingDataSource_CollectionChanged(对象 发件人, NotifyCollectionChangedEventArgs e)
在 System.Windows.Data.PagedCollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)at System.Windows.Data.PagedCollectionView.ProcessAddEvent(对象 addedItem,Int32 addIndex)at System.Windows.Data.PagedCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)at System.Windows.Data.PagedCollectionView< .ctor> B_ 0(对象 发件人, NotifyCollectionChangedEventArgs args) 在 System.Collections.ObjectModel.ObservableCollection1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) at System.Collections.ObjectModel.ObservableCollection
1.InsertItem(的Int32 index,T item)at System.Collections.ObjectModel.Collection`1.Add(T 项目) MyProject.Silverlight.MyViewModel.b _3(对象 Param,GetDataCompletedEventArgs EventArgs)at MyProject.Silverlight.WebServicesSVC.WebServicesClient.OnGetDataCompleted(对象 行):1个字符:1个代码:0
如果[Line:74 Position:57]来自xaml文件,则错误是中间行:
<sdk:DataGridTemplateColumn Header="Edit Details">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding UpdateCommand, Source={StaticResource ViewModel}}" CommandParameter="{Binding}" Content="Update" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
即[Button ...]行,位置57是“{Binding ..}”在Command =中开始的位置。
- 正如我所说,只有在使用IE的刷新按钮刷新页面时才会发生这种情况,并且每次都会在多台PC上发生。
其他细节: Internet Explorer 8 客户端PC:Windows XP 托管服务器:Windows Server 2005(如果没有像2005这样的东西,则为2003)。 Silverlight 4
任何人都可以解释什么是错的吗?刷新的处理方式与正常加载页面的方式有何不同?
答案 0 :(得分:0)
当我在我的silverlight项目的部署版本中出现javascript错误时,它几乎总是我的应用程序在后面代码中的逻辑问题。 YMMV。
鉴于你有SL4,你可能无法在XAML中放置调试点。 我想在不同的盒子上提及SL5 beta,并且部署了你的代码以获得该功能以帮助调试。
或者,您可以按照以下软件刷新
Can Silverlight initiate Page Refreshes?
然后查看您的应用是否表现不同。