如何强制 Visual Studio 2010 在设计时忽略 WPF XAML 声明的 DataContext? [英] How to force Visual Studio 2010 to ignore a WPF XAML declared DataContext at design time?
问题描述
我经常会使用声明性 DataContext 设置 WPF UserControl:
Quite often I will set up WPF UserControl with a declarative DataContext:
<UserControl...>
<UserControl.DataContext>
<local:SomeModel x:Name="Model" />
</UserControl.DataContext>
</UserControl>
在设计模式下,Visual Studio 将尝试实例化 DataContext.但是,当 DataContext 从配置文件中拉取数据时,Visual Studio 2010 会抛出如下错误:
When in design mode, Visual Studio will attempt to instantiate the DataContext. However, when the DataContext is pulling data from a configuration file, Visual Studio 2010 will throw an error such as:
无法创建实例某个模型".
Cannot create an instance of "SomeModel".
当抛出错误时,设计时体验几乎没有价值.如果我注释掉 DataContext,那么 Visual Studio 2010 设计模式会按预期工作,没有 DataContext.
When the error is thrown, the design time experience is of little or no value. If I comment out the DataContext, then the Visual Studio 2010 design mode works as expected, sans DataContext.
有没有办法让 Visual Studio 在设计时忽略 XAML 声明的 DataContext?
Is there a way to have Visual Studio ignore the XAML declared DataContext at design time?
推荐答案
不确定我是否完全理解,但我使用此扩展方法来检测设计器何时运行我的代码:
Not sure I understand completely, but I use this extension method to detect when the designer is running my code:
public static class Extensions
{
public static bool IsDesigner( this Process process )
{
if ( process.MainModule != null )
return ( process.MainModule.ModuleName.Contains( "devenv.exe" ) );
return false;
}
}
这篇关于如何强制 Visual Studio 2010 在设计时忽略 WPF XAML 声明的 DataContext?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!