繁体   English   中英

列表中的数据绑定列表

[英]Data Binding List within a List

我想将listitems绑定到list

我的三个模型:

public class Course
{
    public int Id { get; set; }
    public string Title { get; set; }
    public List<Module> Modules { get; set; }
}

public class Module
{
    public int Id { get; set; }
    public string Title { get; set; }
    public List<Discipline> Disciplines { get; set; }
}

public class Discipline
{
    public int Id { get; set; }
    public string Title { get; set; }
 }

我有一个包含课程列表的页面,并将数据传递到该课程的另一页面以查看一些详细信息,在该详细信息页面上,我将BindingContext设置为BindingContext = _course.Module_course我获得了单击的课程数据。

我的询问是,现在我想显示按模块分组的学科列表

我已经尝试过类似的方法:

<ListView ItemsSource="{Binding .}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding Disciplines}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

要么:

<ListView ItemsSource="{Binding Disciplines}">
    <ListView.ItemTemplate>
        <DataTemplate>
             <TextCell Text="{Binding Title}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

但是我的列表视图总是显示为空,你们可以帮我一下吗?

要将“学科列表”显示为文本列表,可以在第一个“列表”视图中使用ListView作为数据模板,并将“学科”绑定到该模板“列表视图”。 你可以试试 :

 <ListView ItemsSource="{Binding}"> <ListView.ItemTemplate> <DataTemplate> <ListView ItemsSource="{Binding Disciplines}"> <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding Title}" /> </DataTemplate> </ListView.ItemTemplate> </ListView> </DataTemplate> </ListView.ItemTemplate> </ListView> 

我会发布我的解决方法,以了解是否有人对此有问题,但是如果有人知道更好的解决方案可以发布它

我已经单独上课了

public class GroupedDisciplines : ObservableCollection<Disciplines>
{
    public string Title { get; set; }

    public static ObservableCollection<GroupedDisciplines> CreateGroup (ObservableCollection<Module> module)
    {
        var group = new GroupedDisciplines();
        var colection = new ObservableCollection<GroupedDisciplines>();
        foreach (Module m in module)
        {
            group = new GroupedDisciplines() { Title = m.Title };
            foreach (Discipline d in module.SelectMany(x => x.Disciplines))
            {
                group.Add(d);
            }
            colection.Add(group);
        }

        return colection;
    }
}

在视图上,我将BindingContext(或x:Name.ItemsSource)设置为

listView.ItemsSource = GroupedDisciplines.CriarGrupo(_modules);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM