用户控件引发“给定的键在字典中不存在”错误。

7 浏览
0 Comments

用户控件引发“给定的键在字典中不存在”错误。

有没有人知道是否存在一些全局状态变量,以便我可以检查代码当前是否在设计模式(例如在 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 GetAll

{

get

{

try

{

if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)

{

return Customer.GetAll;

}

else

{

return CustomerDesign.GetAll;

}

}

catch (Exception ex)

{

throw new Exception(ex.Message);

}

}

}

0