SimpleIoc.Default.Register falla en IsInDesignModeStatic si la interfaz está en un ensamblaje diferente

En el constructor estático deViewModelLocator la claseSimpleIoc.Default.Register<T>(); falla enIsInDesignModeStatic modo, si la interfaz está en un proyecto diferente. Como resultado elMainWindow.xaml diseñador está vacío en tiempo de diseño.

He hecho una solución simple para probarlo. Sólo los cambios que he hecho es mover elDataItem clase y laIDataService interfaz en el proyecto de dominio.

Descarga aquí

He encontrado un paseo alrededor: Agregue un enlace a IDataService.cs en el proyecto ClientWpf.

public class ViewModelLocator {
    static ViewModelLocator() {
        ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

        if (ViewModelBase.IsInDesignModeStatic) {

            // It fails if the IDataService is in different assembly
            // Delete the link of IDataService.cs from the ViewModel folder...
            SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();
        }
        else {
            SimpleIoc.Default.Register<IDataService, DataService>();
        }

        SimpleIoc.Default.Register<MainViewModel>();
    }
...
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta