【问题标题】:"Prefix '....' does not map to a namespace", A designer bug?“前缀 '....' 不映射到命名空间”,设计器错误?
【发布时间】:2013-12-02 15:41:29
【问题描述】:

我的应用程序运行良好,运行良好。现在我想使用 VS2012 设计器来设计我的MainWindow,它是来自不同库的HandledWindow 的派生类型。

这是我的 MainWindow 的 XAML 代码:

<UI:HandledWindow x:Class="Diamond.Executor.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:UI="clr-namespace:Diamond.Core.UI;assembly=Diamond.Core"
    Title="MainWindow"
    Height="250"
    Width="500"
    Style="{DynamicResource WindowStandard}"
    WindowStartupLocation="CenterScreen"
    Loaded="Initialise">

这里是基本类型HandledWindow:

namespace Diamond.Core.UI
{
    public class HandledWindow : Window
    {

这里有什么问题?当我运行我的应用程序时,任何东西都可以工作,绑定、样式和它的模板。 但突然设计师说“'UI' 没有映射到命名空间”。我只是不明白。它真的无缘无故地阻止了我的发展。也许是 VS2012 的错误,但我想确保我做的一切都是正确的,是否有办法通过该错误并继续使用设计器?

【问题讨论】:

  • 关闭你的视觉工作室。然后重新打开并重新构建
  • 您的代码是否从网络驱动器运行?
  • @ethicallogics,我重新启动并重建仍然发生相同的情况,并且 Blend 显示相同的异常。呃……
  • @Sheridan,我没有使用网络驱动器。

标签: wpf xaml visual-studio-2012 namespaces designer


【解决方案1】:

我发现了导致问题的原因,但我不知道为什么,因为从语法上看它没问题,而且从逻辑上讲它可以工作。但 XAML 的设计器无法正常使用此类数据绑定表达式:

FontSize="{Binding Path=(UI:HandledWindow.FontSizeTitle), Mode=OneWay}"

(它是 UI 命名空间内的样式的一部分,XAML 由于此表达式而整体拒绝) 然后我把它改成了这个表达式:

FontSize="{Binding FontSizeTitle, RelativeSource={RelativeSource TemplatedParent}}"

它完全一样,但现在 XAML 设计器再次工作并停止忽略整个命名空间 UI,因为只有一个数据绑定表达式。

不管怎样,问题终于解决了。

【讨论】:

  • 提示:我们看不到此代码,您可能在问题中遗漏了一些空格或其他内容。
  • 这里找到的解决方案很好的解释:stackoverflow.com/a/43513543/1770778
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 2023-03-11
  • 2013-11-22
相关资源
最近更新 更多