我有d和A,它们都是用C ++ Cli编写的。 A和B都有名称空间SomeNamespace.MyNamespace。 我将C#Application编译为类库I调用dll C. 引用B和C,C引用B。
现在,在dll C中的一个XAML资源中,我声明了以下内容:
xmlns:myNamespace="clr-namespace:SomeNamespace.MyNamespace;assembly=A"
这使我可以访问A中的数据类型,即使A未被引用。所以,我能够做到以下几点:
<DataTemplate DataType="{x:Type myNamespace:SomeClassFromA}">
<TextBlock Text="This works!"/>
</DataTemplate>
我应该继续使用吗?任何潜在的问题?
修改
我偶然遇到了这个。这似乎是一个黑客,所以我在这里发布了一个问题。目前,我使用接口,A中的每个类都有一个字符串属性DataTemplateKey来知道它使用的是哪个DataTemplate。但是,如果我可以在未来的.Net版本中可靠地使用它,那么它将使我当前的代码更加清晰。
修改2
我现在遇到编译时错误:类型引用无法找到名为的公共类型...
所以,现在它没有用。