示例#1
0
        public ViewModelInitializer(Func<FrameworkElement, string,object> locator, params ResolutionStrategy[] strategies)
        {
            if (!strategies.Any())
            {
                _strategies = new List<ResolutionStrategy>();
                var strategy = new ResolutionStrategy(
                    v => true, //match on anything
                    v =>
                        {
                            var viewModelName = v + "ViewModel";
                            return viewModelName;
                        }
                    );

                _strategies.Add(strategy);
                strategy = new ResolutionStrategy(
                    v => v.EndsWith("View"), //match on view name ending with view,
                    v =>
                        {
                            var viewModelName = v + "Model";
                            return viewModelName;
                        }
                    );
                _strategies.Add(strategy);
            }
            else
                _strategies = strategies.ToList();

            var resolver = new ModelResolver(locator, _strategies);
            ModelResolver.SetResolver(resolver);
        }
示例#2
0
        protected virtual object GetDesignTimeViewModel(string name)
        {
            if (_viewModelTypeMapping == null)
            {
                _viewModelTypeMapping = GetViewModelTypeMapping();
                var resolver = new ModelResolver(this.GetViewModel, null);
                ModelResolver.SetResolver(resolver);
            }

            Type viewModelType = null;
            bool found = _viewModelTypeMapping.TryGetValue(name, out viewModelType);
            if (found)
                return Activator.CreateInstance(viewModelType);
            else
                return null;
        }
示例#3
0
 public static void SetResolver(ModelResolver resolver)
 {
     _resolver = resolver;
 }