为什么我的可绑定选择器不起作用?

时间:2017-07-31 19:30:00

标签: c# xaml layout xamarin.forms picker

这是我背后的代码

    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"/>

1 个答案:

答案 0 :(得分:1)

首先检查如何在页面上设置BindingContext。然后尝试而不是

new PropertyChangedEventArgs(nameof(String))

呼叫

new PropertyChangedEventArgs("cidadeItems")