有没有办法在xaml中声明一个类型数组?
也许是这样的?
<x:Array Type="x:Type">
<x:Type se:MyType1/>
<x:Type se:MyType2/>
<x:Type se:MyType3/>
</x:Array>
答案 0 :(得分:4)
您需要使用不同的名称空间前缀。 x:Type
是一个标记扩展,它创建System.Type对象,并且您想要创建一个类型对象的数组,而不是一个标记扩展数组(我假设)。
使用元素语法时不能调用构造函数,因此您需要使用TypeExtension的Type属性传递类型。
这样的事情应该有效:
<x:Array xmlns:sys="clr-namespace:System;assembly=mscorlib" Type="sys:Type">
<x:Type Type="se:MyType1"/>
<x:Type Type="se:MyType2"/>
<x:Type Type="se:MyType3"/>
</x:Array>