Qualcuno sa di qualche variabile di stato globale che è disponibile in modo da poter verificare se il codice è attualmente in esecuzione in modalità progettazione (ad esempio in Blend o Visual Studio) o no?
Sarebbe simile a questo:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
Il motivo per cui ho bisogno di questo è: quando la mia applicazione viene mostrata in modalità progettazione in Expression Blend, voglio che ViewModel utilizzi invece una "Classe cliente di progettazione" che contiene dati simulati che il progettista può visualizzare in modalità progettazione.
Tuttavia, quando l'applicazione viene effettivamente eseguita, ovviamente desidero che ViewModel utilizzi la vera classe Customer che restituisce dati reali.
Attualmente risolvo questo problema facendo in modo che il designer, prima che ci lavori, vada nel ViewModel e cambi "ApplicationDevelopmentMode.Executing" in "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);
}
}
}