Хтось знає про якусь змінну глобального стану, яка доступна, щоб я міг перевірити, чи виконується цей код у режимі проектування (наприклад, у Blend чи Visual Studio) чи ні?
Це виглядатиме приблизно так:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
Причина, яка мені потрібна, полягає в тому, що коли моя програма відображається в режимі дизайну в Expression Blend, я хочу, щоб ViewModel замість цього використовував "Клас дизайну клієнтів", в якому є макетні дані, які дизайнер може переглядати в режимі дизайну.
Однак, коли програма фактично виконується, я, звичайно, хочу, щоб ViewModel використовував реальний клас клієнтів, який повертає реальні дані.
В даний час я вирішую це, коли дизайнер перед тим, як він буде працювати над ним, переходить у 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);
}
}
}