Alguém sabe de alguma variável de estado global que está disponível para que eu possa verificar se o código está atualmente em execução no modo de design (por exemplo, no Blend ou Visual Studio) ou não?
Seria algo como isto:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
A razão pela qual eu preciso disso é: quando meu aplicativo estiver sendo mostrado no modo de design no Expression Blend, quero que o ViewModel use uma "classe Design Customer" que contenha dados simulados que o designer possa exibir no modo de design.
No entanto, quando o aplicativo está realmente em execução, é claro que desejo que o ViewModel use a classe Customer real, que retorna dados reais.
Atualmente, eu resolvo isso fazendo com que o designer, antes que ele trabalhe, vá para o ViewModel e altere "ApplicationDevelopmentMode.Executing" para "ApplicationDevelopmentMode.Designing":
public CustomersViewModel()
{
_currentApplicationDevelopmentMode = ApplicationDevelopmentMode.Designing;
}
public ObservableCollection<Customer> GetAll
{
get
{
try
{
if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)
{
return Customer.GetAll;
}
else
{
return CustomerDesign.GetAll;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}