将 ObservbleCollection 绑定到组合框 XAML - Windows phone

Binding ObservbleCollection to Combo box in XAML - Windows phone

我试图将 ObservableCollection 变量绑定到 XAML 中的 ComboBox。数据不具有约束力。

XAML 文件

<ComboBox x:Name="cmbCity" Height="44" Width="150" Grid.Row="4" 
          ItemsSource="{Binding}">
     <ComboBox.ItemTemplate>
         <DataTemplate>
             <TextBlock Margin="5" Text="{Binding lstCity}"/>
         </DataTemplate>
     </ComboBox.ItemTemplate>
</ComboBox>    

后面的代码(导航到另一个页面后)

protected override void OnNavigatedTo(NavigationEventArgs e)
{  
    UserInfo userInfo = new UserInfo();
    userInfo.UserName = "Gayathri";
    userInfo.Country = "India";
    userInfo.State = "TN";    
    ObservableCollection<string> cityInfo = new ObservableCollection<string>();
    cityInfo.Add("Chennai");
    cityInfo.Add("Cuddalore");
    cityInfo.Add("Pondicherry");
    cityInfo.Add("Villupuram");    
    userInfo.lstCity = cityInfo;    
    this.DataContext = userInfo;
}

我在这里传递 DataContext 中的值。数据绑定到 textbox 但不是 Combobox.

输出:

你的绑定有点错误。
他们应该是这样的:

<ComboBox x:Name="cmbCity" Height="44" Width="150" Grid.Row="4" 
          ItemsSource="{Binding lstCity}">
     <ComboBox.ItemTemplate>
         <DataTemplate>
             <TextBlock Margin="5" Text="{Binding}"/>
         </DataTemplate>
     </ComboBox.ItemTemplate>
</ComboBox>  

(我已将引用移至 lstCity

之前您将整个 DataContext 绑定到 ComboBox,然后将每个 TextBlock 绑定到字符串集合。
您需要将 ComboBox 的 ItemsSource 绑定到集合,然后每个 TextBlock 应包含字符串之一。