针对Xaml中的Picker.Items获取整数值
这是我在xaml中的代码针对Xaml中的Picker.Items获取整数值,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,这是我在xaml中的代码 <Picker Title="Privacy" SelectedItem="{Binding PrivacyLevel}"> <Picker.Items> <x:String>Public</x:String> <x:String>Private</x:String> </Picker.Items> </Picker> 公开的 私有的 属
<Picker Title="Privacy" SelectedItem="{Binding PrivacyLevel}">
<Picker.Items>
<x:String>Public</x:String>
<x:String>Private</x:String>
</Picker.Items>
</Picker>
公开的
私有的
属性PrivacyLevel为整数类型。如果是公共的,我想存储1个,如果是私人的,我想存储2个。如何?您可以使用类来表示您的项目,可能是
PrivacyLevel
类。您可以使用列表
,而不是将选择器绑定到字符串列表。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();
}
}
public List Privacies{get;set;}=new List()
{
新PrivacyLevel(){Name=“Public”,Value=1},
新PrivacyLevel(){Name=“Private”,Value=2}
};
私密性(privacy level)私密性;;
公共隐私权{
得到{
归还隐私;
}
设置{
_隐私=价值;
OnPropertyChanged();
}
}
最后
<Picker Title="Privacy"
ItemsSource="{Binding Privacies}"
SelectedItem="{Binding Privacy}"
ItemDisplayBinding="{Binding Name}"/>
请记住,现在您有了一个SelectedItem,它是一个对象,如果您想使用该值,您需要访问它的属性
有点困惑,在代码中我在哪里定义了文本“Public”和“Private”?在你的代码中什么是Privacies&Privacy?你可以用一个类来表示你的项目,也许是一个PrivacyLevel类。您可以使用
列表
,而不是将选择器绑定到字符串列表。PrivacyLevel类既包含要显示的文本,也包含要持久化/存储/使用的值。它工作正常,但我对实现通知更改有点困惑。因此,每次0时它都会得到。您需要实现INotifyPropertyChanged
,以保持UI和BindingContext同步。你可以在这里复习