Xaml Xamarin.表格“;“数据绑定”;<;x:数组类型=";{x:Type x:String}"&燃气轮机;

Xaml Xamarin.表格“;“数据绑定”;<;x:数组类型=";{x:Type x:String}"&燃气轮机;,xaml,xamarin.forms,data-binding,Xaml,Xamarin.forms,Data Binding,我有一个自定义控件,其属性名为“PredefinedOptions”,类型为IEnumerable。我想用Xaml填充这个IEnumerable 这项工作: <c:EditNameValueControl Label="{l10n:Translate Salutation}" <c:EditNameValueControl.PredefinedOptions> <x:Array Type="{x:Type x:String}">

我有一个自定义控件,其属性名为“PredefinedOptions”,类型为IEnumerable。我想用Xaml填充这个IEnumerable

这项工作:

<c:EditNameValueControl Label="{l10n:Translate Salutation}"
    <c:EditNameValueControl.PredefinedOptions>
        <x:Array Type="{x:Type x:String}">
            <x:String>value A</x:String>
            <x:String>value B</x:String>
        </x:Array>
    </c:EditNameValueControl.PredefinedOptions>
</c:EditNameValueControl>
我希望以相同的方式设置各个值(但不知道语法,或者这是否可行)

例如:

<x:Array Type="{x:Type x:String}">
    <x:String>{l10n:Translate ValueA}</x:String>
    <x:String>{l10n:Translate ValueB}</x:String>
</x:Array>

{l10n:Translate ValueA}
{l10n:Translate ValueB}

作为一种解决方法,我现在在代码隐藏中进行此操作,但我想知道是否有解决方案。

好的。显然,x:Array在技术上是一个MarkupExtension(ArrayExtension)

因此,一位同事发现我们可能使用相同的语法:

<x:Array Type="{x:Type x:String}">
    <l10n:Translate>ValueA</l10n:Translate>
    <l10n:Translate>ValueB</l10n:Translate>
</x:Array>

瓦卢亚
瓦卢布
是的,这似乎奏效了:)

<x:Array Type="{x:Type x:String}">
    <l10n:Translate>ValueA</l10n:Translate>
    <l10n:Translate>ValueB</l10n:Translate>
</x:Array>