我MessagingCenter
用来通过我的页面传递对象,从我的 LoginPage 到我的 MainPage。即使object
已更新,当将其用于我的主页时,该对象似乎为空。
public User sUser { get; set; }
public MainPage()
{
InitializeComponent();
MessagingCenter.Subscribe<LoginPage, User>(this, "currentUserMainPage", (obj, item) =>
{
sUser = item;
Debug.WriteLine("User updated from mainPage: " + sUser.firstName);
});
MasterBehavior = MasterBehavior.Popover;
MenuPages.Add((int)MenuItemType.Home, (NavigationPage)Detail);
}
当我在更改页面之前检查对象时,即使它不再为空,它也会返回我为空。
public async Task NavigateFromMenu(int id)
{
if (!MenuPages.ContainsKey(id))
{
switch (id)
{
case (int)MenuItemType.Profile:
if(sUser == null)
{
MenuPages.Add(id, new NavigationPage(new LoginPage(sUser)));
}
else
{
MenuPages.Add(id, new NavigationPage(new ProfilePage(sUser)));
}
break;
}
}
}
知道我在这里想念什么吗?
编辑:这是来自 LoginPage 的调用
protected override async void OnAppearing()
{
base.OnAppearing();
try
{
//perform login
MessagingCenter.Send(this, "currentUserMainPage", aUser.User);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}