c# - 我更新了 ObservableCollection 列表,但 UI 没有从标签页更新问题
问题描述
我更新了 ObservableCollection 列表,但 UI 没有从选项卡页面更新我也清除列表然后分配新列表,列表的值发生变化但 UI 没有更新
public ObservableCollection<Dashboard> DetailsList { get; set; } = new ObservableCollection<Dashboard>();
//API Call
details = await _clientAPI.getDashboardDetails(id);
if (details != null)
{
DetailsList.Clear();
foreach (var item in details)
{
DetailsList.Add(item);
}
}
解决方案
我认为您错过了绑定上下文。添加下面的代码。
this.BindingContext = this;
我制作了一个代码示例供您参考。我不确定你的模型是什么,我用一个简单的模型来测试。
Page1.xaml.cs
public partial class Page1 : ContentPage
{
public ObservableCollection<Dashboard> DetailsList { get; set; }
public Page1()
{
InitializeComponent();
DetailsList = new ObservableCollection<Dashboard>()
{
new Dashboard(){ Name="AA", Country="CountryA"},
new Dashboard(){ Name="BB", Country="CountryB"},
};
this.BindingContext = this;
}
private void btnUpdate_Clicked(object sender, EventArgs e)
{
List<Dashboard> details = new List<Dashboard>();
details.Add(new Dashboard() { Name = "CC", Country = "CountryC" });
details.Add(new Dashboard() { Name = "DD", Country = "CountryD" });
if (details != null)
{
DetailsList.Clear();
foreach (var item in details)
{
DetailsList.Add(item);
}
}
}
}
public class Dashboard
{
public string Name { get; set; }
public string Country { get; set; }
}
xml:
<ContentPage.Content>
<StackLayout>
<Button
x:Name="btnUpdate"
Clicked="btnUpdate_Clicked"
Text="Update" />
<ListView ItemsSource="{Binding DetailsList}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Name}" />
<Label Text="{Binding Country}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
更新:
推荐阅读
- r - 增加 mc.cores 超出逻辑核心数
- bash - Heroku CLI:用户 [user] 是团队管理员,无法加入 app [app]
- python - Python中的类方法没有看到定义的变量
- reactjs - 搜索时缺少文本字段值
- gitlab - Gitlab + Cockpit:普罗米修斯 100% CPU 使用率
- laravel - 为什么我在 laravel 中运行测试时收到“CSRF 令牌不匹配”?
- debian - Firebird3.0 security3.fdb 每天都被损坏/编辑导致“isc_attach_database failed”
- python - 如何获取结构化数组选择的副本
- jenkins - Jenkins 到 Bamboo 迁移和运行 Groovy
- java - Android Studio“失败:构建失败并出现异常。” 错误