基本上,我认为你错过了
OnPropertyChanged
中的方法
GenderList
财产。因此,你的
Picker
我发现以下方法对我有效:
private List<Genders> listOfGenders = new List<Genders>();
public List<Genders> GenderList
{
get => listOfGenders;
set
{
listOfGenders = value;
OnPropertyChanged(nameof(GenderList));
}
}
private void AddToGenderList(params Gender[] genders)
{
if (listOfGenders == null)
{
listOfGenders = new List<Genders>();
}
foreach(Gender gender in genders)
{
listOfGenders.Add(gender);
}
GendersList = listOfGenders;
}
SelectedItem
和
SelectedIndex
选择编辑项
对象
选取器
. 在您的情况下,它将返回
Gender
选择的对象。
选定索引
返回您在列表中选择的项的索引。
指定默认值
要指定默认值,首先确保列表不是空的。例如,下面的代码(从上面的代码展开)应该可以工作:
private int currentSelectedIndex = 0;
public int CurrentSelectedIndex
{
get => currentSelectedIndex;
set
{
currentSelectedIndex = value;
OnPropertyChanged(nameof(CurrentSelectedIndex));
}
}
public MainViewModel()
{
AddToGenderList(new Gender[]
{
new Gender
{
Name = "Male",
Code = "M"
},
new Gender
{
Name = "Female",
Code = "F"
},
new Gender
{
Name = "Other",
Code = "O"
}
// Add more if necessary
});
// Set the default to "Male"
CurrentSelectedIndex = 0;
}
<Picker
Title="Select Gender"
Margin="0,0,0,-5"
ItemsSource="{Binding GenderList}"
SelectedIndex="{Binding CurrentSelectedIndex}"
x:Name="pkrGender"
ItemDisplayBinding="{Binding Name}" />