在设计师中使用一种资源,在生产中使用一种资源。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在设计师中使用一种资源,在生产中使用一种资源。相关的知识,希望对你有一定的参考价值。
我正在开发Windows Phone 7应用程序,在其中对图像源属性进行数据绑定,并使用转换器生成图像。 像这样:
<Image Source="{Binding Image, Converter={StaticResource MyImageConverter}}"></Image>
这可以在模拟器上运行,但会使设计器崩溃,因为MyImageConverter依赖于设计器未实例化的其他代码。 有什么方法可以使设计人员忽略此属性,甚至更好,我可以指定仅由设计人员使用的另一个Source吗? 如果有问题,我正在使用Visual Studio 2010。
答案
如果“设计师”是指Blend或Cider(VS设计师),则可以使用以下内容查找您是否处于设计模式
public static bool IsInDesignMode
{
get
{
return DesignerProperties.GetIsInDesignMode(new DependencyObject());
}
}
然后相应地包装您的代码。
另一答案
最好的简单方法是在ViewModel的.ctor中使用IsInDesignMode:
if (IsInDesignMode) {
//Design time data
} else {
// production
}
另一答案
您可以在设计器中而不是在代码中分配Source属性,并使用条件编译:
#if DEBUG
// assignments for development mode
#else
// assignments for production mode
#endif
以上是关于在设计师中使用一种资源,在生产中使用一种资源。的主要内容,如果未能解决你的问题,请参考以下文章