Кто-нибудь знает какую-нибудь глобальную переменную состояния, которая доступна, чтобы я мог проверить, выполняется ли код в данный момент в режиме разработки (например, в Blend или Visual Studio) или нет?
Это будет выглядеть примерно так:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
Причина, по которой мне это нужно, заключается в том, что когда мое приложение отображается в режиме разработки в Expression Blend, я хочу, чтобы ViewModel вместо этого использовал «класс Design Designer», в котором есть фиктивные данные, которые дизайнер может просматривать в режиме конструктора.
Однако, когда приложение фактически выполняется, я, конечно, хочу, чтобы ViewModel использовал реальный класс Customer, который возвращает реальные данные.
В настоящее время я решаю эту проблему с помощью конструктора, прежде чем он работает над ним, перейдите в ViewModel и измените «ApplicationDevelopmentMode.Executing» на «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);
}
}
}