xamarin.forms - FreshMVVM - 从不继承 FreshBasePageModel 的子 ContentView 打开页面的最佳方式
问题描述
以下代码显示了 OpenPage 的 2 个示例Command
。由于MainPageModel
它直接源自FreshBasePageModel
. 但是,第二个 OpenPage 调用ChildPageModel
将不起作用(或编译)。我不想到处传递父模型。那么,如何使用 FreshMVVM 打开一个新页面ChildPageModel
(并让后退按钮工作等)?
public class MainPageModel : FreshBasePageModel
{
public Command OpenPage
{
get
{
return new Command(() =>
{
CoreMethods.PushPageModel<NewPageModel>();
});
}
}
public ChildPageModel ChildPageModel { get; set; }
}
public class ChildPageModel
{
public Command OpenPage
{
get
{
return new Command(() =>
{
// ??????
CoreMethods.PushPageModel<NewPageModel>();
});
}
}
}
解决方案
以下代码将完成此操作...
var page = FreshPageModelResolver.ResolvePageModel<MainPageModel>();
var model = page.GetModel() as MainPageModel;
var navService = FreshMvvm.FreshIOC.Container.Resolve<IFreshNavigationService>();
await navService.PushPage(page, null);
推荐阅读
- typescript - 打字稿错误:“任何”类型的参数不可分配给“从不”类型的参数 - 在访问数组中的特定键时
- json - 无法确定哪个属性值为空?
- c# - How to send log to url with nlogger in winform c#.?
- c# - 不确定为什么逻辑不会激活游戏对象
- c++ - 如何获取变体向量中元素的索引?
- postgresql - 在 jsonb (Postgres) 中转换日期
- java - jedis 的 Redis 连接问题
- azure - 在获得 azure blob 的租约后,我在哪里可以找到发布 ID 以便我可以发布它?
- python - Windows 提示 cmd 中无法识别 Python
- html - 重叠单元格的轮廓