c# - 如何在 UWP 中加载 ComboBox?
问题描述
我ComboBox
在 XAML 中有以下内容:
<ComboBox Header="Cities" Width="245" SelectedItem="{Binding Cities, Mode=TwoWay}"/>
我需要用一个列表填充它ViewModel
:
public List<City> Cities = new List<City>();
该列表由在 API 中运行的查询填充:
public async void CargarCiudades()
{
var List = await App.Repository.City.GetAsync();
foreach (var i in List)
{
this.Cities.Add(i);
}
}
我需要使用 Cities 列表的内容加载 ComboBox。我该怎么做?
解决方案
使用x:Bind以获得更好的性能而不是Binding您不需要两种方式绑定来从后端填充数据,而不是绑定到 SelectedItem 只需使用ItemsSource还确保使用ObservableCollection而不是List这有助于在添加项目时自动更新 UI或从您的后端列表中删除。
<ComboBox Header="Cities" Width="245" ItemsSource="{x:Bind vm.Cities}"/>
在上面的代码中,我假设vm是您页面后端代码(yourPage.xaml.cs)中的类型属性(您的视图模型)
视图模型
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);
}
}
推荐阅读
- python - 如何使用 pyautogui 正确执行按下选项?
- reactjs - 在 useEffect() 中更新对象的状态是否会创建一个新对象?
- r - 从 R 中数据框中的观察结果生成新变量
- node.js - 在节点流期间捕获错误并继续处理流
- android - 覆盖视图函数android
- ajax - 在codeigniter中的jquery ajax json中带有空格的下拉名称值
- php - 用户名或电子邮件的 Wordpress 密码错误,使用“wp_insert_user”添加
- java - 反序列化同一文件中的许多对象(java)
- node.js - 无法使用 ReactJS 连接到 NodeJS 独立 socket.io
- c# - 如何使用 c# 的按键事件将每个单词的首字母大写?