¿Alguien sabe de alguna variable de estado global que esté disponible para que pueda verificar si el código se está ejecutando actualmente en modo de diseño (por ejemplo, en Blend o Visual Studio) o no?
Se vería algo así:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
La razón por la que necesito esto es: cuando mi aplicación se muestra en modo de diseño en Expression Blend, quiero que ViewModel utilice en su lugar una "Clase de diseño de cliente" que tiene datos simulados que el diseñador puede ver en modo de diseño.
Sin embargo, cuando la aplicación se está ejecutando, por supuesto, quiero que ViewModel use la clase de cliente real que devuelve datos reales.
Actualmente resuelvo esto haciendo que el diseñador, antes de trabajar en él, vaya al ViewModel y cambie "ApplicationDevelopmentMode.Executing" a "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);
}
}
}