将XAML绑定到x:String

将XAML绑定到x:String,xaml,xamarin.forms,Xaml,Xamarin.forms,有没有办法从XAML动态分配Picker.Items 比如: <Picker x:Name="pckTheme"> <Picker.Items> <x:String>{Binding Option1Text}></x:String> <x:String>{DynamicResource Option2Text}></x:String> </Picker.Ite

有没有办法从XAML动态分配Picker.Items

比如:

<Picker x:Name="pckTheme">
    <Picker.Items>
        <x:String>{Binding Option1Text}></x:String>
        <x:String>{DynamicResource Option2Text}></x:String>
    </Picker.Items>
</Picker>

{绑定选项1text}>
{DynamicSource Option2Text}>
(当然,此示例不起作用)

据我所知,Picker.Items中唯一允许的类型是x:String,我似乎找不到任何绑定到x:String的方法

从代码中进行比较简单,但如果可能的话,我更愿意直接从XAML中进行


这里的目标是本地化资源文件中的内容,但其他用途可能会很方便。

通常,您会将
选择器绑定到一个项目列表,该列表可以是您想要的动态项目。如果你问我的话,把它们作为硬编码的项目放在那里并不是真正的动态分配。您可以创建一个
ValueConverter
,在XAML中使用它来获取键的语言特定值,并将
选择器绑定到键列表。

请使用以下XAML代码:

<x:Array Type="{x:Type x:String}">
<x:Static Member="local:AppResources.Events"/>
<x:Static Member="local:AppResources.Device"/>
<x:Static Member="local:AppResources.Biographical"/>
</x:Array>

绑定这些值怎么样?这对你不管用吗?这就是我想做的。它似乎不适用于。我认为您可以从资源文件中读取信息(您的字符串),并将其插入列表,然后绑定到选择器…谢谢。我现在就是这样做的。但是我还需要处理代码中的运行时语言更改,这就是为什么我想从XAML中进行更改。这个想法是尽可能使用参考资料中的{Strings.keyValue},所以本地化将由Xamarin.forms本身处理。所以在我看来,这不是硬编码。
xmlns:local="clr-namespace:YOURNAMESPACE"