无法使用“应用程序属性”值填充输入

时间:2017-06-29 20:03:35

标签: xamarin xamarin.forms

使用我的第一个Xamarin Forms应用程序。我把它放在App的OnStart()方法中:

Application.Current.Properties["Email"] = "gern@blanston.org";

应该在应用程序启动时立即设置该值,对吧? 然后我创建了一个带有EmailAddress条目的登录内容页面。在页面初始化中,我得到了这个:

if (Application.Current.Properties.ContainsKey("Email"))
{
    EmailAddress.Text = Application.Current.Properties["Email"] as string;
}

当我运行应用程序时,不会填充EmailAddress Entry元素。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

它应该有用。

这是Documentation

您可以尝试使用SavePropertiesAsync

属性字典会自动保存到设备中。当应用程序从后台返回时或者甚至在重新启动后,添加到字典中的数据将可用。

Xamarin.Forms 1.4在Application类上引入了另一种方法 - SavePropertiesAsync() - 可以调用它来主动持久化属性字典。这是为了让您在重要更新后保存属性,而不是冒着因崩溃或被操作系统杀死而无法将其序列化的风险。

答案 1 :(得分:1)

在App构造函数之后调用OnStart命令,您可能在App构造函数中创建登录页面并检入登录页面构造函数但是尚未调用OnStart。在创建登录/主页面之前设置它

    Application.Current.Properties["Email"] = "gern@blanston.org";
    var navPage = new MainPage();