【问题标题】:Visual Studio 2013 Express WPF Deigner load failureVisual Studio 2013 Express WPF Deigner 加载失败
【发布时间】:2014-10-09 09:34:35
【问题描述】:

我的 VS2013 Express Wpf Designer 出现问题。他不会加载我使用自定义转换器的视图。该应用程序编译并运行良好,我的转换器按预期工作。但在设计模式下,我不断收到“名称 {converterClassName} 不存在于命名空间 {namespace}”

问题是,虽然我不使用设计器来创建视图,但我使用它来了解我正在做的事情会是什么样子,而无需调试,所以如果它可以工作我会非常高兴再次。

全球视野:

(请原谅我的法语)


详情:

我引用了我的命名空间(与这种方式的视图属于同一个程序集:

<UserControl xmlns:converters="clr-namespace:Sequenceur.ProdUI.IHM.Converters">

以这种方式声明资源:

<UserControl.Resources>
    <converters:BoolToVisibility x:Key="visibilityConverter"/>
</UserControl.Resources>

(这个问题和Window一样)

并以这种方式使用我的转换器:

<MenuItem Header="Maintenance" Visibility="{Binding Path=AdminMode, Converter={StaticResource ResourceKey=visibilityConverter}}">

转换器本身

这是一个简单的IValueConverter 实现,没什么花哨的。

在我的所有其他项目中,即使使用转换器,设计器也能正常加载。您可能想知道我从另一个项目中用我的视图制作了一些脏副本/过去,它一定来自那个,但我看不出在哪里......

【问题讨论】:

    标签: c# wpf xaml visual-studio-2013 visual-studio-express


    【解决方案1】:

    对于转换器以及 resx 文件中的资源,我在 VS 2012 中遇到过类似的问题。恐怕我没有一个每次都有效的解决方案,但是从this onethis one 等类似问题中启发自己,我通常在解决方案配置“Debug 86”和“Debug Any CPU”之间切换一对多次,清洁和重建,直到问题消失(它并不总是第一次起作用)。

    如果这不起作用,上面链接中的答案会提到我个人没有尝试过的其他解决方案,包括将程序集信息添加到 clr-namespace 或更改输出路径。

    我还看到了包括创建一个新项目以消除错误的解决方案,但由于这些错误往往会反复出现,因此它只是一个临时解决方案(而且是一个烦人的解决方案,尤其是在使用源代码时控制)。

    【讨论】:

    • 好的,所以它来自 VS 设计器缺陷,没有通用的解决方案。无论如何,谢谢你的提示。这是你的观点。
    • 好吧,也许有一种完全合理的方法可以解决这个问题,但我还没有找到。我希望它会在 2013 版本中得到解决,但似乎没有。在我看来,通过坚持 x86,问题发生的频率降低了。好勇气!
    【解决方案2】:

    与 Visual Studio 设计师的争执很常见,尤其是在我的情况下。有时我处于疯狂的边缘,这就是为什么我只喜欢代码视图而不使用设计器的原因(当然,设计有一些优势)。但就您而言,这些步骤应该会有所帮助:

    1. 重建解决方案(BoolToVisibility 可能未构建)
    2. 关闭您的 XAML 文件
    3. 尝试第二次清理和重建
    4. 打开您的 XAML 文件

    也许没用。有时重新启动 Visual Studio 也可以解决其中一些问题。

    【讨论】:

    • 我在发布之前已经尝试过了。无论如何,我很高兴知道我不是唯一一个在苦苦挣扎的人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2017-01-24
    • 2013-11-09
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多