Страница Silverlight не загружается при обновлении браузера - PullRequest
2 голосов
/ 14 июня 2011

У меня есть приложение 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

Может кто-нибудь пролить свет на то, что не так? Как обновление обрабатывается иначе, чем обычная загрузка страницы?

1 Ответ

0 голосов
/ 01 сентября 2011

Когда я получаю ошибки javascript в развернутой версии моего проекта silverlight, это почти всегда является проблемой логики моего приложения в следующем коде. YMMV.

Учитывая, что у вас SL4, вы, вероятно, не можете поместить точку отладки в XAML. Мне хотелось упомянуть бета-версию SL5 на другом компьютере с развернутым кодом, чтобы использовать эту функцию для отладки.

Кроме того, вы можете обновить программное обеспечение по:

Может ли Silverlight инициировать обновление страницы?

и посмотрите, не работает ли ваше приложение по-другому.

...