You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI绑定Tarefa.Condutor未显示,求助排查绑定问题

.NET MAUI Label绑定不显示数据的问题排查

核心问题:命令执行后未更新ViewModel的Tarefa属性

你的GetTarefaFake命令仅查询到了目标TarefaDTO对象,但没有将结果赋值给ViewModel中的Tarefa属性,导致绑定的Tarefa.Condutor始终是初始化时的空值。

修复方案

修改GetTarefaFake命令,将查询结果赋值给Tarefa属性:

[RelayCommand]
public async Task GetTarefaFake(int? idTarefa)
{
    var listaTarefas = await GetTarefaFromFake();
    var novatarefa = listaTarefas.Where(t => t.Id == idTarefa).SingleOrDefault();
    // 关键步骤:更新ViewModel的Tarefa属性,触发UI绑定更新
    Tarefa = novatarefa;
}

注:此命令无需返回TarefaDTO,直接更新ViewModel属性即可触发绑定通知。

次要问题:重复设置BindingContext

你在XAML中已通过<ContentPage.BindingContext>配置了ViewModel,后台构造函数又重复创建了新的DashboardViewModel实例:

public DashboardPage()
{
    InitializeComponent();
    // 删除此行重复代码,XAML已完成BindingContext设置
    // BindingContext = new DashboardViewModel();
}

该问题不会直接导致数据不显示,但会生成冗余实例,建议清理。

额外验证建议

  1. 确认BaseViewModel的SetProperty方法正确实现了INotifyPropertyChanged接口的属性变更通知(从你的代码使用SetProperty来看,这部分应该无问题)。
  2. 给Label添加FallbackValue验证绑定状态:
<Label x:Name="Teste" Text="{Binding Tarefa.Condutor, FallbackValue='绑定未生效'}" FontSize="14" TextColor="Black"></Label>

若显示“绑定未生效”说明绑定路径有误;若显示空值,则Tarefa.Condutor确实未被赋值。

内容的提问来源于stack exchange,提问作者João Marques

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:40:31