我有两个页面:
WeatherPage.xaml
Favorites.xaml
我还有一个按钮";收藏夹"在CCD_ 1页中。
当用户在CCD_ 3字段中的CCD_;收藏夹"该文本应当显示在另一页面CCD_ 4上。
有没有一个选项可以将传输的文本保留在页面Favorites.xaml
上,即使应用程序关闭也可以保持在那里?
我没有数据库,我正在寻找一个如何将文本从一个页面移动到另一个页面并保存的例子
我在WeatherPage.xaml
中的代码是:
<Entry x:Name="_cityEntry"
Grid.Row="1"
Grid.Column="1"
Margin="5,0"
VerticalOptions="Center"
BackgroundColor="Black"
TextColor="White"
Opacity="0.7"
Text="Moscow" />
<ImageButton Source="blackheart.png"
Grid.Row="1"
Grid.Column="3"
WidthRequest="40"
HeightRequest="40"
Opacity="0.7"
Clicked="OnGetFavorites"/>
在我的WeatherPage.xaml.cs
中,我在按钮方法上插入了这行代码:
void OnGetFavorites(System.Object sender, System.EventArgs e)
{
Preferences.Set("cityName", _cityEntry.Text);
}
我的FavoritePage.xaml.cs
看起来像:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace WeatherLocationInfo.Views
{
public partial class Favorites : ContentPage
{
public Favorites()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
FavoriteCities();
}
private void FavoriteCities()
{
string cityName = Preferences.Get("cityName", "default_value");
FavoriteCity.Text = cityName.ToString();
}
}
}
当应用程序在页面上启动时,第一个输入的城市将从WeatherPage
打印到WeatherPage.xaml
0页面,但当它更改城市并再次单击按钮时,搜索栏的内容不会更新。
即使应用程序在没有数据库的情况下关闭,存储数据的一种简单方法是存储_cityEntry文本";作为应用程序偏好。您可以直接使用Xamarin.Essentials:首选项。
在WeatherPage.xaml.cs
中创建一个新的偏好键值对
public partial class WeatherPage : ContentPage
{
public WeatherPage()
{
InitializeComponent();
}
private void OnGetFavorites(object sender, EventArgs e)
{
Preferences.Set("cityName", _cityEntry.Text);
Navigation.PushAsync(new FavoritePage());
}
}
在Favorites.xaml.cs
中获取密钥cityName
的值
public partial class FavoritePage : ContentPage
{
public FavoritePage()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
FavoriteCities();
}
private void FavoriteCities()
{
string cityName = Preferences.Get("cityName", "default_value");
FavoriteCity.Text = cityName.ToString();
}
}
此外,如果您想将数据传递到已经创建的页面,您可以使用MVVM并将城市名称存储在数据模型中。