这是我背后的代码
public ObservableCollection<string> cidadeItems
{
get { return cditems; }
set
{
cditems = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(String)));
}
}
public event PropertyChangedEventHandler PropertyChanged;
void PopulaPickerCidade(string estadoSelecionado)
{
cidadeList = new ObservableCollection<String>();
bool repetido; //repetido = thesame
foreach (var itemLojaLst in lstLoja)
{
repetido = false;
if (estadoSelecionado.ToUpper().Equals(itemLojaLst.estado.ToUpper()))
{
if (cidadeList.Count() > 0)
{
foreach (var itemCidLst in cidadeList)
{
if (itemCidLst.Equals(itemLojaLst.cidade))
{
repetido = true;
break;
}
}
}
if (!repetido)
cidadeList.Add(itemLojaLst.cidade);
}
}
// cidadeList.Sort();
cidadeItems = cidadeList;
}
我看到程序调用这个方法,看起来很有效......我的列表按照我想要的方式接收正常...但是,xaml(我的选择器)没有显示选择器中的数据。 ..当我按下一个按钮并填充应该填充选择器的Observable时,会调用第二种方法。
这是我的xaml:
<Picker x:Name="cidadepicker"
ItemsSource="{Binding cidadeItems}"
Title="Cidade"
SelectedIndexChanged="PickerCidade_SelectedindexChanged"/>
答案 0 :(得分:1)
首先检查如何在页面上设置BindingContext。然后尝试而不是
new PropertyChangedEventArgs(nameof(String))
呼叫
new PropertyChangedEventArgs("cidadeItems")