Xaml编译器和设计器以不同方式处理clr-namespace

时间:2013-11-20 16:48:43

标签: c# .net wpf xaml visual-studio-2012

我有一个非常简单的wpf应用程序,我为了构建我构建的类库而构建,但我想出现一些奇怪的行为:

xmlns:lcl="clr-namespace:testApp;assembly=testApp"

以上是重要的一句话,但我要把所有事情都包括在内。

<Window x:Class="testApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:lcl="clr-namespace:testApp;assembly=testApp"
        xmlns:evt="clr-namespace:EventToCommand;assembly=EventToCommand"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <lcl:ViewModel />
    </Window.DataContext>
    <Label Name="lblOutput" VerticalAlignment="Center" HorizontalAlignment="Center" Content="{Binding labelOutput}" />
</Window>

当我包含程序集时,设计器工作,标签文本上的绑定正常工作。但是,当我去构建并运行程序时,我收到以下错误:

Error   1   The tag 'ViewModel' does not exist in XML namespace 'clr-namespace:testApp;assembly=testApp'

当我删除该行的装配部分时,设计师停止向我显示任何内容,但该程序构建并运行完美。

发生了什么以及如何阻止它?

编辑:

这是AssemblyInfo.cs文件的顶部,以显示这是正确的名称:

[assembly: AssemblyTitle("testApp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("testApp")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

1 个答案:

答案 0 :(得分:0)

尝试将参考 xmlns:lcl =“clr-namespace:testApp; assembly = testApp”更改为 xmlns:lcl =“clr-namespace:testApp”。< / p>

当班级在同一个项目视图中时,没有必要使用“assembly =”