Xamarin表单选取器ItemSource值从XAML本地化

时间:2017-10-05 13:37:39

标签: c# xaml xamarin xamarin.forms

我有这段代码 -

<Picker
   HorizontalOptions="FillAndExpand"
   SelectedIndex="{Binding GenderIndex}"
   VerticalOptions="Center">
   <Picker.Items>
        <x:String>Man</x:String>
        <x:String>Woman</x:String>
   </Picker.Items>

我想要本地化值“男人”和“女人”

我有TranslateExtension : IMarkupExtension并在XAML中使用此功能

Text="{extensions:Translate LastName}"并且效果很好

但是当我尝试使用

<Picker
   HorizontalOptions="FillAndExpand"
   SelectedIndex="{Binding GenderIndex}"
   VerticalOptions="Center">
   <Picker.Items>
        <x:String>{extensions:Translate Man}</x:String>
        <x:String>{extensions:Translate Woman}</x:String>
   </Picker.Items>

设备显示不是值,而是{extensions:Translate Man}

此外,我不能使用Binding for ItemsSource。

1 个答案:

答案 0 :(得分:2)

如果你像这样嵌入<x:String> - 它将被视为字符串。尝试使用元素语法:

<Picker.Items>
    <extensions:Translate PropertyName="Man" />
</Picker.Items>

PropertyName对应于标记扩展的默认属性。