В основном все шло хорошо, пока я не щелкнул по второстепенной плите моего приложения, и ничего не было обновлено. Сейчас я сейчас работаю над записью, а одна из основных функций - привязать заметку к стартовому экрану.WP8 - Не удалось обновить параметры плитки (нераскрытые)
Проблема заключается в том, что после создания плитки ей присваивается уникальный случайный идентификатор, так что если содержимое плитки нуждается в изменении этого идентификатора, то будет использоваться этот фрагмент, если он закреплен и обновлен так. Уникальный идентификатор создается, как только пользователь нажимает на новую заметку и не будет меняться.
В принципе, он делает эту часть правильно, это просто, когда я нажимаю вторичное приложение, оно берет меня на страницу с параметрами, которые я изначально создал, а не теми, которые я модифицировал.
например. Я создаю записку и TITLE: Привет и СООБЩЕНИЕ: HI !!!. и прикрепите его к началу. Теперь плитка показывает мне название и сообщение. Я решил внести изменения в примечание. Я меняю название на: да и сообщение: нет. Я открываю приложение и вношу изменения в заметку, и все обновляется. Теперь у меня есть модифицированная заметка, которая автоматически обновляется. Теперь плитка показывает мне измененную ноту. поэтому содержание плитки будет да и нет.
Но я решил просмотреть записку, нажав на плитку. Он выводит меня на страницу, но вместо отображения измененного содержания заметки он показывает мне исходный текст заметки, который является Hello and Hi !! а не Да и №
Мой Исходник- для создания и обновления является:
Dim contextMenuListItem As ListBoxItem = DirectCast(ItemsList.ItemContainerGenerator.ContainerFromItem(DirectCast(sender, MenuItem).DataContext), ListBoxItem)
Dim item As SampleData1 = DirectCast(contextMenuListItem.Content, SampleData1)
Dim TileToFind As ShellTile = ShellTile.ActiveTiles.FirstOrDefault(Function(x) x.NavigationUri.ToString().Contains("parameter2=" & item.ID))
If TileToFind Is Nothing Then
Dim TileData As New IconicTileData() With { _
.Title = item.Name, _
.WideContent1 = item.Name, _
.WideContent2 = item.Description, _
.WideContent3 = item.ID, _
.SmallIconImage = New Uri("Assets/Tiles/IconicTileSmall.png", UriKind.Relative), _
.IconImage = New Uri("Assets/Tiles/IconicTileMediumLarge.png", UriKind.Relative), _
.BackgroundColor = Colors.Transparent}
ShellTile.Create(New Uri("/CreateNote.xaml?parameter=" & TileData.Title.ToString & "¶meter1=" & TileData.WideContent2.ToString & "¶meter2=" & TileData.WideContent3.ToString, UriKind.Relative), TileData, True)
Else
Dim TileData As New IconicTileData() With { _
.Title = item.Name, _
.WideContent1 = item.Name, _
.WideContent2 = item.Description, _
.SmallIconImage = New Uri("Assets/Tiles/IconicTileSmall.png", UriKind.Relative), _
.IconImage = New Uri("Assets/Tiles/IconicTileAssets/IconicTileMediumLarge.png", UriKind.Relative), _
.BackgroundColor = Colors.Transparent}
TileToFind.Update(TileData)
End If
ВИДЕО показывая, что я имею в виду: https://www.youtube.com/watch?v=xsedPk7YKdw
ДОБАВЛЕНО ========== ================================================== =====================
код, который создает плитку с параметрами навигации:
ShellTile.Create(New Uri("/CreateNote.xaml?parameter=" & TileData.Title.ToString & "¶meter1=" & TileData.WideContent2.ToString & "¶meter2=" & TileData.WideContent3.ToString, UriKind.Relative), TileData, True)
На CreateNote странице параметры:
Protected Overrides Sub OnNavigatedTo(ByVal e As System.Windows.Navigation.NavigationEventArgs)
MyBase.OnNavigatedTo(e)
Dim parameter As String = String.Empty
Dim parameter1 As String = String.Empty
Dim parameter2 As String = String.Empty
If NavigationContext.QueryString.TryGetValue("parameter", parameter) Then
Me.Title.Text = parameter
OldFName.Text = parameter
End If
If NavigationContext.QueryString.TryGetValue("parameter1", parameter1) Then
Me.Message.Text = parameter1
End If
If NavigationContext.QueryString.TryGetValue("parameter2", parameter2) Then
Me.IDG.Text = parameter2
End If
End Sub
вы видите мою проблему? если это недостаточно ясно, пожалуйста, уточните, пожалуйста. Спасибо.
Вы уверены, что обновили данные нот в источнике данных, кроме обновления данных Tiles? Я предположил, что при просмотре плитки открывается страница CreateNote и загружает данные из источника данных на основе параметров Uri. – har07
Привет, да Заметка обновляется и сохраняется в хранилище. После сохранения заметки, которая вызывает событие обновления. Таким образом, в основном все обновляется, и когда пользователь нажимает на плитку с обновленной информацией, навигационная панель переходит на страницу, но показывает старое содержимое. Я обновил свой пост с видео, четко показывающим, что я имею в виду. –
Более подходящий код для включения в вопрос - это тот, который считывает параметры Uri и загружает соответствующие данные на странице CreateNote. Проблема, скорее всего, будет там, поскольку создание и обновление данных Tile работало так, как вы хотите. – har07