是否可以在XAML中使用内联数组?
我正在尝试改变这样的事情:
<Control>
<Control.Property>
<Binding Path="MyVariable" Converter="{StaticResource MyConverter}">
<Binding.ConverterParameter>
<x:Array Type="s:Boolean">
<s:Boolean>True</s:Boolean>
<s:Boolean>False</s:Boolean>
</x:Array>
</Binding.ConverterParameter>
</Binding>
</Control.Property>
</Control>
这样的事情:
<Control Property="{Binding MyVariable,
Converter={StaticResource MyConverter},
ConverterParameter={x:Array s:Boolean, Items=[]{ {s:Boolean True}; {s:Boolean False} }}}"
/>
但Visual Studio向我显示以下错误“属性”:
“IList”的TypeConverter不支持从字符串转换
OBS:
答案 0 :(得分:0)
是否可以在XAML中使用内联数组?
没有。我担心没有有效的语法来定义数组&#34; inline&#34;在XAML。
您可以使用x:Key
:
<x:Array x:Key="array" Type="s:Boolean">
<s:Boolean>True</s:Boolean>
<s:Boolean>False</s:Boolean>
</x:Array>
..然后使用StaticResource
标记扩展名引用它。
<Control Property="{Binding MyVariable,
Converter={StaticResource MyConverter},
ConverterParameter={StaticResource arr}}" />
或者您可以定义自定义数组类并将其定义为资源:
<local:MyCollectionType />
例如,如果您不想在XAML标记中浪费更多行,则可以使用其构造函数中的项填充自定义类型。但是没有内置支持这样的东西:
Items=[]{ {s:Boolean True}; {s:Boolean False} }}}"
另一种方法是创建custom markup expression。