导航到其他页面时,将值保留在页面中

时间:2019-04-21 13:43:16

标签: vb.net xaml uwp

我正在开发一个UWP应用,其中有一个“页面”,并且在该页面中有几个“文本框”,用户输入数值(数字)。当导航到其他页面以获取其他值并返回该页面时,在“文本框”中输入的值都将丢失。我使用了“ NavigationCacheMode”,没有成功。

导航到其他页面时,请帮助您如何维护当前页面的UI元素(文本框)中的值。

如果解决方案在VB.NET中,我将不胜感激。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您必须自己保存日期。例如,当导航到其他页面时,您可以选择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

结束班级