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

如何在Xamarin Forms中显示特定taskId关联的所有子任务(父子关系)

解决Xamarin Forms待办应用子任务关联展示问题

1. 给数据层添加按父TaskId查询子任务的方法

先确认你的子任务模型(比如SubTask类)包含ParentTaskId字段,然后在数据服务中实现查询逻辑:

// 数据服务示例方法
public List<SubTask> GetSubTasksByParentId(int parentTaskId)
{
    // 替换为你实际使用的数据源(SQLite/API等)的查询方式
    return _subTasks.Where(s => s.ParentTaskId == parentTaskId).ToList();
}

2. 跳转详情页时传递父TaskId

在任务列表页的点击事件中,将选中任务的Id传递给详情页:

// 列表项点击事件
async void OnTaskSelected(object sender, SelectedItemChangedEventArgs e)
{
    if (e.SelectedItem is TaskModel selectedTask)
    {
        await Navigation.PushAsync(new TaskDetailPage(selectedTask.Id));
    }
}

在详情页的构造函数中接收这个Id:

public TaskDetailPage(int parentTaskId)
{
    InitializeComponent();
    LoadSubTasks(parentTaskId);
}

3. 详情页加载子任务并绑定到UI

在LoadSubTasks方法中调用数据服务获取子任务,再绑定到列表控件:

private void LoadSubTasks(int parentTaskId)
{
    var subTasks = _taskService.GetSubTasksByParentId(parentTaskId);
    SubTasksListView.ItemsSource = subTasks;
}

对应的XAML列表代码:

<ListView x:Name="SubTasksListView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding Title}" Detail="{Binding Description}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

4. 排查常见问题

  • 检查子任务的ParentTaskId是否正确存储,避免赋值错误
  • 跳转时确认TaskId已成功传递,可在详情页构造函数中打印参数验证
  • 若使用MVVM模式,确保ViewModel中的SubTasks集合更新时触发INotifyPropertyChanged

内容的提问来源于stack exchange,提问作者Vired

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:30:45