2017-06-20 46 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. –