代码之家  ›  专栏  ›  技术社区  ›  Metro Smurf

如何强制VisualStudio2010在设计时忽略WPF XAML声明的DataContext?

  •  0
  • Metro Smurf  · 技术社区  · 15 年前

    我经常使用声明性DataContext设置WPF UserControl:

    <UserControl...>
        <UserControl.DataContext>
            <local:SomeModel x:Name="Model" />
        </UserControl.DataContext>
    </UserControl>
    

    无法创建的实例 “SomeModel”。

    当抛出错误时,设计时经验几乎没有价值。如果我将DataContext注释掉,那么visualstudio2010设计模式就可以像预期的那样工作,sans DataContext。

    有没有办法让visualstudio在设计时忽略XAML声明的DataContext?

    2 回复  |  直到 15 年前
        1
  •  1
  •   David Lynch    15 年前

    我不确定是否完全理解,但我使用此扩展方法来检测设计器何时运行我的代码:

    public static class Extensions
    {
        public static bool IsDesigner( this Process process )
        {
            if ( process.MainModule != null )
                return ( process.MainModule.ModuleName.Contains( "devenv.exe" ) );
    
            return false;
        }
    }
    
        2
  •  4
  •   SuperRetard    15 年前

    为了获得额外的好处,可以将条件分解包装在预处理器指令中,和/或使用明智的ConditionalAttribute()来确保这些额外的噪声不会进入生产环境。

    推荐文章