使用我的第一个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元素。
我做错了什么?
答案 0 :(得分:1)
它应该有用。
您可以尝试使用SavePropertiesAsync
属性字典会自动保存到设备中。当应用程序从后台返回时或者甚至在重新启动后,添加到字典中的数据将可用。
Xamarin.Forms 1.4在Application类上引入了另一种方法 - SavePropertiesAsync() - 可以调用它来主动持久化属性字典。这是为了让您在重要更新后保存属性,而不是冒着因崩溃或被操作系统杀死而无法将其序列化的风险。
答案 1 :(得分:1)
在App构造函数之后调用OnStart命令,您可能在App构造函数中创建登录页面并检入登录页面构造函数但是尚未调用OnStart。在创建登录/主页面之前设置它
Application.Current.Properties["Email"] = "gern@blanston.org";
var navPage = new MainPage();