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);
        }
示例#2
0
        /// <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);
        }