2017-07-31 79 views
0

這裏是背後爲什麼我的可綁定選取器不起作用?

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

首先檢查你如何設置的BindingContext頁面上。然後嘗試,而不是

new PropertyChangedEventArgs(nameof(String)) 

呼叫

new PropertyChangedEventArgs("cidadeItems") 
+0

之間有什麼的BindingContext = 「{結合cidadeItems}」 和的ItemsSource = 「{結合cidadeItems}」 有什麼區別? –

+0

我現在使用的代碼背後...... –

+0

一些元素有像ListView的ItemsSource,有些不。答案是否適合你? –