Exemple #1
0
        public object Locate(Func <object> locate, object baseObject = null)
        {
            var obj = locate();

            switch (obj)
            {
            case IView v:
                var h = Mvvm.ViewHelperFactory.Get(v, hh => hh.Context = this);
                h.Linked = baseObject;
                CallCreators(v);
                break;

            case IViewModel vm:
                IMvvmContext context = this;
                if (vm is IMvvmContextProvider p)
                {
                    context = GetChildContext(vm.GetType().Name);
                    p.ConfigureMvvmContext(context);
                }
                vm.MvvmContext = context;
                vm.Model       = baseObject;

                CallCreators(vm);
                break;
            }
            if (baseObject is IViewModel vmb)
            {
                vmb.SetLinked(obj);
            }
            return(obj);
        }
Exemple #2
0
 public void ConfigureMvvmContext(IMvvmContext ctx)
 {
 }
 public static IView GetView <T>(this IMvvmContext ctx, object baseObject, Type viewClass)
 => ctx.GetView(baseObject, typeof(T), viewClass);
 public static IView GetView(this IMvvmContext ctx, object baseObject, Type viewMode)
 => ctx.GetView(baseObject, viewMode, typeof(IViewClassDefault));
 public static object GetLinked <TMode, TClass>(this IMvvmContext ctx, object o) => ctx.GetLinked(o, typeof(TMode), typeof(TClass));
 public static object GetLinked <T>(this IMvvmContext ctx, object o) => ctx.GetLinked(o, typeof(T), typeof(IViewClassDefault));
 public static object GetLinked <T>(this IMvvmContext ctx, object o, Type viewClass) => ctx.GetLinked(o, typeof(T), viewClass);
 public static IView GetView <TMode, TClass>(this IMvvmContext ctx, object baseObject)
 => ctx.GetView(baseObject, typeof(TMode), typeof(TClass));
 public static IView GetView <T>(this IMvvmContext ctx, object baseObject)
 => ctx.GetView(baseObject, typeof(T), typeof(IViewClassDefault));
Exemple #10
0
 public MvvmContext(IMvvmContext parent, string name)
 {
     Parent = parent;
     Name   = name;
     _cache = new Lazy <ViewModelCache>(() => new ViewModelCache(this, Mvvm));
 }
Exemple #11
0
 public static void SetMvvmContext(DependencyObject obj, IMvvmContext value)
 => obj.SetValue(MvvmContextProperty, value);
        public void ConfigureMvvmContext(IMvvmContext ctx)
        {
//            ctx.AddCreator<SampleTestResultViewModel>(vm => vm.Parent = this);
        }
Exemple #13
0
 public IMvvmContext GetNewContext(IMvvmContext parent, string name) => new MvvmContext(parent, name, this);
Exemple #14
0
 public IMvvmContext GetNewContext(IMvvmContext parent, string name) => _getNewContext(parent, name);
Exemple #15
0
 public ViewModelCache(IMvvmContext context, IMvvmService mvvm)
 {
     _context = context;
     _mvvm    = mvvm;
 }