是否有人知道一些可用的全局状态变量,这样我就可以检查代码是否正在设计模式下执行(例如在 Blend 或 Visual Studio 中) ?
它看起来像这样:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
我需要这样做的原因是: 当我的应用程序在 Expression Blend 中以设计模式显示时,我希望 ViewModel 改为使用“ Design Customer class”,其中包含模拟数据,设计师可以在设计模式中查看这些数据。
但是,当应用程序实际执行时,我当然希望 ViewModel 使用返回实际数据的实际 Customer 类。
目前,我解决这个问题的方法是让设计人员在进行工作之前,进入 ViewModel 并更改“ ApplicationDevelopmentMode”。“执行”到“应用开发模式”。设计”:
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);
}
}
}