Xamarin Forms Picker ItemSource values localize from XAML

Viewed 753

I have this code -

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

I want localize values "Man" and "Woman"

I Have TranslateExtension : IMarkupExtension and use this in XAML

Text="{extensions:Translate LastName}" and it work good

But when i try use

<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>

Device display not values, but {extensions:Translate Man}.

Also I can't use Binding for ItemsSource.

1 Answers

If you embed into <x:String> like that - it will be treated like string. Try using element syntax:

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

PropertyName corresponds to the default property on your markup extension.

Related