Сохраняйте значения на странице при переходе на другие страницы

#vb.net #xaml #uwp

#vb.net #xaml #uwp

Вопрос:

Я разрабатываю приложение UWP, где есть «страница», и на этой странице есть несколько «текстовых полей», значения которых вводятся пользователем (числа). При переходе на другие страницы для получения других значений и возврате на эту страницу все значения, введенные в «текстовых полях», теряются. Я использовал «NavigationCacheMode», безуспешно.

Не могли бы вы помочь, как сохранить значения в элементах пользовательского интерфейса (текстовых полях) на текущей странице при переходе на другие страницы.

Я был бы признателен, если бы решение было в VB.NET .

Большое вам спасибо.

Ответ №1:

В этом случае вам придется сохранять дату самостоятельно. Например, вы можете выбрать ApplicationData .LocalSettings для сохранения данных при переходе на другую страницу.

Вы можете сохранить данные в методе OnNavigatedFrom страницы и получить данные в его методе OnNavigatedTo следующим образом:

 <StackPanel>
    <TextBox x:Name="textbox1"></TextBox>
    <TextBox x:Name="textbox2"></TextBox>
    <Button Content="navigate" Click="Button_Click"></Button>
</StackPanel>
  
 Public NotInheritable Class MainPage
Inherits Page
Dim localSettings As Windows.Storage.ApplicationDataContainer = Windows.Storage.ApplicationData.Current.LocalSettings
Protected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
    MyBase.OnNavigatedTo(e)
    Dim value1 As Object = localSettings.Values(textbox1.Name)
    Dim value2 As Object = localSettings.Values(textbox2.Name)

    If value1 IsNot Nothing And value2 IsNot Nothing Then
        textbox1.Text = value1.ToString()
        textbox2.Text = value2.ToString()
    End If

End Sub

Protected Overrides Sub OnNavigatedFrom(e As NavigationEventArgs)
    MyBase.OnNavigatedFrom(e)
    localSettings.Values(textbox1.Name) = textbox1.Text
    localSettings.Values(textbox2.Name) = textbox2.Text
End Sub

Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
    Frame.Navigate(GetType(BlankPage1))
End Sub
  

Завершить класс