如何在xaml中将类的实例分配给Tag

时间:2013-10-22 06:24:23

标签: c# wpf xaml

我的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="{??????}"/>

2 个答案:

答案 0 :(得分:1)

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

此外,如果该类与XAML位于同一个程序集中,则不需要assembly=

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

要访问资源,请使用:

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

MyClassx:Key属性的值。

答案 1 :(得分:0)

事实证明这是因为我正在编译CPU设置为x64。出于某种原因,设计师似乎并不喜欢这样,虽然我无法弄清楚原因。如果我改为AnyCPU,一切正常。

我已经注意到x64配置的其他问题,例如单元测试无法正常工作等等,所以我想环境对x64配置的支持不能满足要求。

相关问题