Quelqu'un connaît-il une variable d'état globale disponible pour que je puisse vérifier si le code est actuellement en cours d'exécution en mode conception (par exemple dans Blend ou Visual Studio) ou non?
Cela ressemblerait à quelque chose comme ceci:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
La raison pour laquelle j'en ai besoin est la suivante: lorsque mon application est affichée en mode conception dans Expression Blend, je souhaite que le ViewModel utilise à la place une "classe Design Customer" qui contient des données simulées que le concepteur peut afficher en mode conception.
Cependant, lorsque l'application s'exécute réellement, je souhaite bien sûr que le ViewModel utilise la classe Customer réelle qui renvoie des données réelles.
Actuellement, je résous ce problème en demandant au concepteur, avant de travailler dessus, d'aller dans le ViewModel et de changer "ApplicationDevelopmentMode.Executing" en "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);
}
}
}