C# 如何在UWP中加载组合框?

C# 如何在UWP中加载组合框?,c#,xaml,combobox,uwp,C#,Xaml,Combobox,Uwp,我在XAML中有以下组合框: <ComboBox Header="Cities" Width="245" SelectedItem="{Binding Cities, Mode=TwoWay}"/> 该列表由在API中运行的查询填充: public async void CargarCiudades() { var List = await App.Repository.City.GetAsync(); foreach (var i in List) {

我在XAML中有以下
组合框

<ComboBox Header="Cities" Width="245" SelectedItem="{Binding Cities, Mode=TwoWay}"/>
该列表由在API中运行的查询填充:

public async void CargarCiudades()
{
   var List = await App.Repository.City.GetAsync();
   foreach (var i in List)
   {
        this.Cities.Add(i);
   }
}

我需要加载包含城市列表内容的组合框。如何操作?

使用x:Bind以获得更好的性能,而不是绑定从后端填充数据不需要双向绑定,也不需要绑定到SelectedItem只需使用项资源也要确保使用ObservableCollection而不是列表即可帮助在从后端列表中添加或删除项目时自动更新UI

<ComboBox Header="Cities" Width="245" ItemsSource="{x:Bind vm.Cities}"/>

在上面的代码中,我假设vm是ur页面(yourPage.xaml.cs)后端代码中类型(您的viewmodel)的属性

视图模型

public ObservableCollection<City> Cities = new ObservableCollection<City>();

public async void CargarCiudades()
{
   var list = await App.Repository.City.GetAsync();
   foreach (var i in list)
   {
        this.Cities.Add(i);
   }
}
公共ObservableCollection城市=新ObservableCollection();
公共异步void CargarCiudades()
{
var list=wait App.Repository.City.GetAsync();
foreach(列表中的变量i)
{
本条。城市。添加(i);
}
}

组合框在绑定到列表后不知道添加了新项目


如果您将Cities集合改为ObservableCollection,它将按照您的预期工作。

您可以在此处搜索答案
public ObservableCollection<City> Cities = new ObservableCollection<City>();

public async void CargarCiudades()
{
   var list = await App.Repository.City.GetAsync();
   foreach (var i in list)
   {
        this.Cities.Add(i);
   }
}