SimpleIoc.Default.Register falha no IsInDesignModeStatic se a interface estiver em assembly diferente
No construtor estático deViewModelLocator
classifiqueSimpleIoc.Default.Register<T>();
falha emIsInDesignModeStatic
modo, se a interface estiver em um projeto diferente. Como resultado,MainWindow.xaml
designer está vazio em tempo de design.
Eu fiz uma solução simples para testá-lo. Apenas as alterações que eu fiz é mover oDataItem
classe e oIDataService
interface para o projeto de domínio.
Eu encontrei uma volta: Adicione um link para o IDataService.cs no projeto 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>();
}
...
}