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); }
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; }
public static void SetResolver(ModelResolver resolver) { _resolver = resolver; }