Значения ItemSource средства выбора форм Xamarin локализованы из XAML

У меня есть этот код -

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

У меня есть 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>

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

Также я не могу использовать Binding для ItemsSource.


person Артём Тищенко    schedule 05.10.2017    source источник


Ответы (1)


Если вы вставите <x:String> таким образом, он будет обработан как строка. Попробуйте использовать синтаксис элемента:

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

PropertyName соответствует свойству по умолчанию в вашем расширении разметки.

person Sharada Gururaj    schedule 05.10.2017