如何强制 Visual Studio 2010 在设计时忽略 WPF XAML 声明的 DataContext? [英] How to force Visual Studio 2010 to ignore a WPF XAML declared DataContext at design time?

查看:16
本文介绍了如何强制 Visual Studio 2010 在设计时忽略 WPF XAML 声明的 DataContext?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我经常会使用声明性 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆