为什么我更改的字符串没有出现在使用选项卡式表单 xamarin 的另一页上
Why doesn't my changed string appear on the other page using tabbed forms xamarin
我的 WeatherPage.xaml
中有 <Entry/>
字段,默认设置了文本
<Entry x:Name="_cityEntry"
Grid.Row="1"
Grid.Column="1"
Margin="5,0"
VerticalOptions="Center"
BackgroundColor="Black"
TextColor="White"
Opacity="0.7"
Text="Moscow" />
我从 <Entry/>
获取字符串并将此字符串设置到另一个页面。
我的WeatherPage.xaml.cs
代码:
void OnGetFavorites(System.Object sender, System.EventArgs e)
{
Preferences.Set("cityName", _cityEntry.Text);
var tabbedPage = this.Parent.Parent as TabbedPage;
tabbedPage.CurrentPage = tabbedPage.Children[2];
}
当我第一次加载应用程序时按下按钮,它会将我重定向到相应的页面,我会看到默认设置的字符串。
当我在 <Entry/>
字段中写入其他内容并再次按下按钮时,逻辑将我重定向回相应的页面,但字符串没有改变。
当 <Entry/>
字段中的字符串更改后,是否可以选择在相应页面中也进行更改?
打印字符串的页面如下所示:
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();
}
}
我附上了一张屏幕截图,其中我按下按钮并打印了“Moscow”(因为它是默认设置的),然后我将字符串更改为“San Francisco”并再次按下按钮,但字符串不是打印 ?
您没有执行任何刷新文本的操作。您只是在构造函数中调用它而从不更新它
public Favorites()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
FavoriteCities();
}
如果您想在每次页面出现时调用它,请尝试使用OnAppearing
public void override OnAppearing()
{
FavoriteCities();
}
我的 WeatherPage.xaml
<Entry/>
字段,默认设置了文本
<Entry x:Name="_cityEntry"
Grid.Row="1"
Grid.Column="1"
Margin="5,0"
VerticalOptions="Center"
BackgroundColor="Black"
TextColor="White"
Opacity="0.7"
Text="Moscow" />
我从 <Entry/>
获取字符串并将此字符串设置到另一个页面。
我的WeatherPage.xaml.cs
代码:
void OnGetFavorites(System.Object sender, System.EventArgs e)
{
Preferences.Set("cityName", _cityEntry.Text);
var tabbedPage = this.Parent.Parent as TabbedPage;
tabbedPage.CurrentPage = tabbedPage.Children[2];
}
当我第一次加载应用程序时按下按钮,它会将我重定向到相应的页面,我会看到默认设置的字符串。
当我在 <Entry/>
字段中写入其他内容并再次按下按钮时,逻辑将我重定向回相应的页面,但字符串没有改变。
当 <Entry/>
字段中的字符串更改后,是否可以选择在相应页面中也进行更改?
打印字符串的页面如下所示:
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();
}
}
我附上了一张屏幕截图,其中我按下按钮并打印了“Moscow”(因为它是默认设置的),然后我将字符串更改为“San Francisco”并再次按下按钮,但字符串不是打印 ?
您没有执行任何刷新文本的操作。您只是在构造函数中调用它而从不更新它
public Favorites()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
FavoriteCities();
}
如果您想在每次页面出现时调用它,请尝试使用OnAppearing
public void override OnAppearing()
{
FavoriteCities();
}