0

我的 Xaml 代码在程序集 Foo 中,在命名空间 Foo 中。在程序集 FooBar 中,在命名空间 Foo.Bar 中,我有一个名为 MyClass 的类,其中包含一个无参数构造函数。在我的 xaml 中,我想创建一个新的 MyClass 实例并将其分配给 Tag。我怎样才能做到这一点?

我尝试了以下方法:

<Application x:Class="Foo.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:foobar="clr-namespace:Foo.Bar;assembly=FooBar"
             StartupUri="MainWindow.xaml">
  <Application.Resources>
    <foobar:MyClass x:Key="MyClass"/>
  </Application.Resources>
</Application>

但在这一点上,我已经得到了一条弯曲的下划线,上面写着“MyClass 类型在命名空间“clr-namespace:Foo.Bar;assembly=FooBar”中不存在,即使它确实存在。

我该如何解决这个问题?在我解决这个问题之后,我该如何编写以下内容?

<XamlElement Tag="{??????}"/>
4

2 回答 2

1

如果没有先编译新类,设计者可能不知道它。尝试编译和运行。

此外,如果该类位于 XAML 所在的同一程序集中,assembly=则不需要:

xmlns:foobar="clr-namespace:Foo.Bar"

要访问资源,请使用:

<XamlElement Tag="{StaticResource MyClass}" />

属性MyClass的值在哪里。x:Key

于 2013-10-22T06:44:13.893 回答
0

原来这是因为我在编译时将 CPU 设置为 x64。出于某种原因,设计师似乎不喜欢这个,虽然我不知道为什么。如果我更改为 AnyCPU,一切正常。

我也注意到 x64 配置的其他问题,例如单元测试不起作用等,所以我猜环境对 x64 配置的支持还不够。

于 2013-10-22T06:47:42.283 回答