我正在实例化另一个页面,并为其公共属性之一(“SomeValue”)分配一个值,如下所示:
_btnGotoOtherPage.Clicked += async (sender, e) =>
{
OtherPage _otherpage = new OtherPage;
_otherpage.SomeValue = 1033;
await Navigation.PushAsync(_otherpage);
return;
};
在这个“_otherpage”中,用户可以修改这个值。
当弹出“_otherpage”时,我想查看“SomeValue”变量并用它做一些事情。
MessagingSystem 不是我所需要的,因为我不想收到值更改的通知。我只想知道当“_otherpage”弹出时这个值是多少。
我也不想使用绑定(如果可能的话!),因为我觉得在处理许多此类变量时很难组织。
也许可以通过事件来做到这一点吗?
我梦想的解决方案是(伪代码):
private void OnPagePopped()
{
int iNewValue = PoppedPage.SomeValue;
}
谢谢。
如果您正在寻找理想的解决方案,我建议遵循 MVVM 模式并将大量代码从页面后面移至视图模型。
我使用一个名为 FreshMvvm 的 MVVM 框架。这允许我执行视图模型来查看模型导航并在它们之间传递参数,如下所示:
await CoreMethods.PushPageModel<BPageModel>(myParameter, true);
这将参数传递给了页面,我可以在 BPage 视图模型的 Init 方法中访问该页面。
当我弹出 B 页面(通过视图模型)时,我可以将参数传递回 A 页面
await CoreMethods.PopPageModel(myReturnParam, true);
我可以在 APageViewModel 的 ReverseInit 方法中访问它。
大多数 MVVM 框架都有类似的功能。
以下是有关 FreshMvvm 的更多详细信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)