如何在XAML中指定泛型类型参数

ioW*_*int 6 wpf mvp xaml prism

我有一个用于我的MVP的BaseView - PRISM WPF应用程序.现在出于某种原因,我们考虑将_presenter作为BaseView中的模板化字段.

早些时候,我将xaml表示为

<base:BaseView xamlns:base="clr address of the dll which had BaseView" >

</base:BaseView>
Run Code Online (Sandbox Code Playgroud)

现在,因为我已经改变了 BaseViewBaseView<TPresenter>,那么如何将我写的XAML中呢?

sll*_*sll 9

您可以在.NET 4 FrameworkXAML 2009和XAML 2009之后执行此操作.请参阅MSDN上的XAML中的泛型

例如:

<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>
Run Code Online (Sandbox Code Playgroud)

对于.NET 3.5:

对于专门针对WPF的XAML 2006用法,还必须在与x:TypeArguments相同的元素上提供x:Class,并且该元素必须是XAML文档中的根元素.根元素必须映射到具有至少一个类型参数的泛型类型.一个例子是PageFunction.

支持通用用法的可能解决方法包括定义可以返回泛型类型的自定义标记扩展,或者提供从泛型类型派生但在其自己的类定义中展平泛型约束的包装类定义.

  • 我在哪里可以得到这个“XAML 2009”的东西?我有 .Net 4.6.2,但我的 wpf 应用程序仍在使用 XAML 2006? (2认同)