public Page ResolvePage(Type pageType, ZeroBaseModel previousModel, object data) { var page = (Page)ZeroIoc.Container.Resolve(pageType); var context = (ZeroBaseModel)page.BindingContext ?? this.ResolveViewModelByConvention(page); context.CurrentPage = page; context.PreviousModel = previousModel; Utility.Utility.InvokeReflectionPrepareModel(context, data); return(page); }
/// <summary> /// Invoke PrepareModel by reflection on passed model /// </summary> /// <param name="model"></param> /// <param name="data"></param> internal static void InvokeReflectionPrepareModel(ZeroBaseModel model, object data) { // call init method var dynMethod = typeof(ZeroBaseModel).GetMethod("PrepareModel", BindingFlags.NonPublic | BindingFlags.Instance); if (dynMethod != null) { dynMethod.Invoke(model, new object[] { data }); } }
public T ResolvePage <T>(ZeroBaseModel previousModel = null, object data = null) where T : Page { var page = ZeroIoc.Container.Resolve <T>(); var context = (ZeroBaseModel)page.BindingContext ?? this.ResolveViewModelByConvention(page); context.CurrentPage = page; context.PreviousModel = previousModel; Utility.Utility.InvokeReflectionPrepareModel(context, data); return(page); }