Xamarin Forms Picker ItemSource 值从 XAML 本地化

Art*_*nko 3 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>
Run Code Online (Sandbox Code Playgroud)

我想要本地化值“Man”和“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>
Run Code Online (Sandbox Code Playgroud)

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

另外,我无法对 ItemsSource 使用 Binding。

Sha*_*raj 5

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

<Picker.Items>
    <extensions:Translate PropertyName="Man" />
</Picker.Items>
Run Code Online (Sandbox Code Playgroud)

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