У меня есть приложение silverlight, с которым у меня проблема.
Страница отлично работает при обычной загрузке - либо через веб-браузер, либо когда она установлена на рабочий стол.
Проблема возникает в браузере, когда кто-то нажимает обновить.
Когда они нажимают кнопку Обновить (F5), данные не загружаются, элементы управления отображаются, но привязанные к данным пусты.
И у них есть ошибка JavaScript, которая появляется в нижней части IE.
Сведения об ошибке веб-страницы
Сообщение: необработанная ошибка в
Приложение Silverlight Укажите значение
на 'System.Windows.Data.Binding' кинул
исключение. [Линия: 74 Позиция: 57]
в
MS.Internal.XcpImports.MethodEx (IntPtr
ptr, строковое имя, CValue [] cvData)
в
MS.Internal.XcpImports.MethodEx (DependencyObject
obj, строковое имя) в
MS.Internal.XcpImports.DataTemplate_LoadContent (DataTemplate
шаблон) в
System.Windows.Controls.DataGridTemplateColumn.GenerateElement (DataGridCell
ячейка, объект dataItem) в
System.Windows.Controls.DataGrid.PopulateCellContent (Boolean
isCellEdited, DataGridColumn
dataGridColumn, DataGridRow
dataGridRow, DataGridCell
dataGridCell) в
System.Windows.Controls.DataGrid.AddNewCellPrivate (DataGridRow
строка, столбец DataGridColumn) в
System.Windows.Controls.DataGrid.CompleteCellsCollection (DataGridRow
dataGridRow) в
System.Windows.Controls.DataGrid.GenerateRow (Int32
rowIndex, слот Int32, объект
dataContext) в
System.Windows.Controls.DataGrid.InsertElementAt (Int32
слот, Int32 rowIndex, объект объекта,
DataGridRowGroupInfo groupInfo,
Boolean isCollapsed) в
System.Windows.Controls.DataGrid.InsertRowAt (Int32
rowIndex) в
System.Windows.Controls.DataGridDataConnection.NotifyingDataSource_CollectionChanged (Объект
отправитель,
NotifyCollectionChangedEventArgs e)
в
System.Windows.Data.PagedCollectionView.OnCollectionChanged (NotifyCollectionChangedEventArgs
args) в
System.Windows.Data.PagedCollectionView.ProcessAddEvent (Объект
AddedItem, Int32 addIndex) в
System.Windows.Data.PagedCollectionView.ProcessCollectionChanged (NotifyCollectionChangedEventArgs
args) в
System.Windows.Data.PagedCollectionView. <. Т е р> b_ 0 (Object
отправитель,
NotifyCollectionChangedEventArgs args)
в
System.Collections.ObjectModel.ObservableCollection 1.OnCollectionChanged(NotifyCollectionChangedEventArgs
e) at
System.Collections.ObjectModel.ObservableCollection
1.InsertItem (Int32
индекс, T элемент) в
System.Collections.ObjectModel.Collection`1.Add (Т
пункт) в
MyProject.Silverlight.MyViewModel.b _3 (Object
Param, GetDataCompletedEventArgs
EventArgs) в
MyProject.Silverlight.WebServicesSVC.WebServicesClient.OnGetDataCompleted (Объект
штат) Линия: 1 символ: 1 код: 0
Если [Строка: 74 Позиция: 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, и это происходит каждый раз на нескольких компьютерах.
Дополнительные детали:
Internet Explorer 8
Клиентские ПК: Windows XP
Сервер хостинга: Windows Server 2005 (или 2003, если нет такого понятия, как 2005).
Silverlight 4
Может кто-нибудь пролить свет на то, что не так? Как обновление обрабатывается иначе, чем обычная загрузка страницы?