有没有一种方法可以检查WPF当前是否在设计模式下执行?
它看起来像这样:
//pseudo code:if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
我需要这样做的原因是:当我的应用程序在Expression Blend中以设计模式显示时,我希望ViewModel改为使用其中包含模拟数据的“ Design
Customer类”,设计人员可以在设计模式下进行查看。
但是,当应用程序实际执行时,我当然希望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);
}
}
}
回答:
我相信您正在寻找具有DependencyObject的GetIsInDesignMode。
就是
// 'this' is your UI elementDesignerProperties.GetIsInDesignMode(this);
使用Silverlight /
WP7时,应使用,IsInDesignTool
因为GetIsInDesignMode
有时在Visual
Studio中可能返回false:
DesignerProperties.IsInDesignTool
最后,出于完整性考虑,WinRT / Metro / Windows
Store应用程序中的等效项是DesignModeEnabled
:
Windows.ApplicationModel.DesignMode.DesignModeEnabled
以上是 有没有一种方法可以检查WPF当前是否在设计模式下执行? 的全部内容, 来源链接: utcz.com/qa/403422.html