public UIElement GetOrCreateViewType(Type viewType) { var cached = IoC.GetAllInstances(viewType).OfType <UIElement>().FirstOrDefault(); if (cached != null) { Caliburn.Micro.ViewLocator.InitializeComponent(cached); return(cached); } if (viewType.IsInterface || viewType.IsAbstract || !typeof(UIElement).IsAssignableFrom(viewType)) { return(new TextBlock { Text = string.Format("Cannot create {0}.", viewType.FullName) }); } var newInstance = Activator.CreateInstance(viewType) as UIElement; var frameworkElement = newInstance as FrameworkElement; if (frameworkElement != null) { var resources = themeManager.GetThemeResources(); foreach (var d in resources) { frameworkElement.Resources.MergedDictionaries.Add(d); } } Caliburn.Micro.ViewLocator.InitializeComponent(newInstance); return(newInstance); }
public UIElement GetOrCreateViewType(Type viewType) { var cached = IoC.GetAllInstances(viewType).OfType <UIElement>().FirstOrDefault(); if (cached != null) { Caliburn.Micro.ViewLocator.InitializeComponent(cached); return(cached); } if (viewType.IsInterface || viewType.IsAbstract || !typeof(UIElement).IsAssignableFrom(viewType)) { return(new TextBlock { Text = $"Cannot create {viewType.FullName}." }); } var newInstance = (UIElement)Activator.CreateInstance(viewType); var frameworkElement = newInstance as FrameworkElement; frameworkElement?.Resources.MergedDictionaries.Add(_themeManager.GetThemeResources()); Caliburn.Micro.ViewLocator.InitializeComponent(newInstance); return(newInstance); }