用户控件引发“给定的键在字典中不存在”错误。
用户控件引发“给定的键在字典中不存在”错误。
有没有人知道是否存在一些全局状态变量,以便我可以检查代码当前是否在设计模式(例如在 Blend 或 Visual Studio 中)执行?
它大致会像这样:
//伪代码:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
我需要这个的原因是:当我的应用程序在 Expression Blend 的设计模式中显示时,我希望 ViewModel 使用一个“设计客户类”,其中包含设计师可以在设计模式下查看的模拟数据。
然而,当应用程序实际执行时,我当然希望 ViewModel 使用返回真实数据的真实 Customer 类。
目前,我通过在设计师开始工作之前,进入 ViewModel 并将 "ApplicationDevelopmentMode.Executing" 更改为 "ApplicationDevelopmentMode.Designing" 来解决这个问题:
public CustomersViewModel()
{
_currentApplicationDevelopmentMode = ApplicationDevelopmentMode.Designing;
}
public ObservableCollection
{
get
{
try
{
if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)
{
return Customer.GetAll;
}
else
{
return CustomerDesign.GetAll;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}