Skip to content

Instantly share code, notes, and snippets.

public class MainViewModelFactory
: ViewModelFactory<MainViewModel, MainViewModelDesign>
{
}
/// <summary>
/// Design time version of the MainViewModel.
/// </summary>
public class MainViewModelDesign : MainViewModel
{
public class MainViewModelFactory
: ViewModelFactory<MainViewModel, MainViewModelDesign>
{
}
public class MainViewModelDesign : MainViewModel
{
public MainViewModelDesign()
: base(new EventAggregator(), new DesignDatabase())
{
public class DesignDatabase : IDatabase
{
public Feed GetFeed()
{
return new Feed();
}
public void SaveFeed(Feed feed)
{
}
private void InitApplicationHost()
{
events = new EventAggregator();
db = new Database();
ApplicationHost.Current.Container.Register<EventAggregator>(events);
ApplicationHost.Current.Container.Register<Database>(db);
}
private void InitApplicationHost()
{
var container = ApplicationHost.Current.Container;
db = new Database();
container.Register<IEventAggregator>(new EventAggregator());
container.Register<IDatabase>(db);
container.Register<MainViewModel>(c => new MainViewModel(
public class ApplicationHost
{
private static volatile ApplicationHost instance;
private static object syncRoot = new Object();
private ApplicationHost()
{
Execute.InitializeWithDispatcher();
// Initialize the Funq container.
public class Bootstrapper
{
private Container container = null;
public Bootstrapper()
{
Initialize();
}
private void Initialize()
public interface IViewModelResolver
{
IViewModel Resolve();
}
public class FunqViewModelResolver : IViewModelResolver
{
private readonly Container container;
private Dictionary<type , MethodInfo> methods = null;
private MethodInfo method = null;
public abstract class ViewModelFactory<TViewModel, TDesignViewModel>
where TViewModel : IViewModel
where TDesignViewModel : TViewModel, new()
{
public ViewModelFactory()
{
}
public TViewModel ViewModel
{
public abstract class ViewModelFactory
{
protected static IViewModelResolver resolver = null;
public static void InitializeResolver(IViewModelResolver resolver)
{
// This is where we set the resolver for the ViewModelFactory.
// This should get set in the Bootstrapper (Composition Root)
// to the resolver implementation using the
// IoC container that has been chosen for the application.
ViewModelFactory.resolver = resolver;