2017-06-20 82 views
0

获取对Picker.Items整数值,这是我在XAML在XAML

<Picker Title="Privacy" SelectedItem="{Binding PrivacyLevel}"> 
    <Picker.Items> 
     <x:String>Public</x:String> 
     <x:String>Private</x:String> 
    </Picker.Items> 
</Picker> 

酒店PrivacyLevel是整数类型的代码。我想存储1如果公开和2如果私人。怎么样?

回答

0

您可以使用一个类来表示您的项目,也许是一个PrivacyLevel类。您可以使用List<PrivacyLevel>而不是将您的Picker与字符串列表绑定。 PrivacyLevel类包含你想要显示的文本和你想要保存/存储/使用的值。

public class PrivacyLevel 
{ 
    public string Name { get; set; } 
    public int Value { get; set; } 
} 

然后用选项填充您的ViewModel。

public List<PrivacyLevel> Privacies { get; set; } = new List<PrivacyLevel>() 
    { 
     new PrivacyLevel(){Name = "Public",Value = 1}, 
     new PrivacyLevel(){Name = "Private",Value = 2} 
    }; 

    private PrivacyLevel _privacy; 
    public PrivacyLevel Privacy{ 
     get{ 
      return _privacy; 
     } 
     set{ 
      _privacy=value; 
      OnPropertyChanged(); 
     } 
    } 

最后,

<Picker Title="Privacy" 
      ItemsSource="{Binding Privacies}" 
      SelectedItem="{Binding Privacy}" 
      ItemDisplayBinding="{Binding Name}"/> 

Remeber,现在你有一个的SelectedItem这是一个对象,如果你想使用的价值,你需要访问它的属性。

+0

有点困惑, 我在这段代码中定义了我的文本“Public”和“Private”? 什么是您的代码中的贵宾和隐私? –

+0

您可以使用一个类来表示您的项目,也可以是一个PrivacyLevel类。你可以使用'List '来代替将你的Picker绑定到一个字符串的列表。 PrivacyLevel类包含你想要显示的文本和你想要保存/存储/使用的值。 –

+1

它的工作正常,但我有点困惑与实施通知的变化。由于它每次都得到0. –