绑定listView以在另一个listView中显示与其关联的数据

物理壳

亲爱的StackOverflow用户。我有一个任务:我有一个从JSON获得的学生列表。

[
    {
        "Name":         "Grant",
        "Groupname":    "Group1"
    },
    {
        "Name":         "Tim",
        "Groupname":    "Group2"
    },
    {
        "Name":         "Spencer",
        "Groupname":    "Group3"
    }
    .....
]

然后,我有两个列表框:第一个用于组,第二个用于属于该组的学生。我无法解决的问题:使用Binding和DataContext在listBox中显示当前选定组的学生。所以我需要帮助。学生和团体的声明:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Groupname { get; set; }
}

public class Group
{
    public string Name { get; set; }
    public int Count { get; set; } // how many students are in this group

    public List<Student> Students = new List<Student>();

    public Group()
    {
    }

    public Group(string name, int count)
    {
        this.Name = name;
        this.Count = count;
    }
}

下面的代码使用“小组列表”,每个小组都有一个学生列表。而在这一刻,我被困住了。

public MainWindow()
{
    List<Group> groups = new List<Group>();
    
    // I excluded json deserialization and Lists initialization code...

    InitializeComponent();

    foreach (var x in groups)
    {
        GroupsView.Items.Add(x.Name);

        foreach (var y in x.Students)
        {
            StudentsView.Items.Add(y);
        }
    }
}

XAML中的listBoxes

<ListBox Name="GroupsView" HorizontalAlignment="Left" Height="172" Margin="48,0,0,0" VerticalAlignment="Center" Width="206"/>

<ListBox Name="StudentsView"  HorizontalAlignment="Left" Height="172" Margin="306,0,0,0" VerticalAlignment="Center" Width="364">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <Run Text="{Binding Path=Id}"></Run>
                <Run Text="{Binding Path=Name}"></Run>
            </TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我知道它与XAML有关,但是我突然遇到了这个问题,需要尽快完成。上一次我在2017年使用C#时,请原谅我这个愚蠢的问题。如果有人可以帮忙,我将非常感激

坦率
  1. 首先,您需要为MainWindow实现INotifyPropertyChanged,因此您将拥有OnPropertyChanged();。
public class MainWindow : INotifyPropertyChanged

参见此处https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/data/how-to-implement-property-change-notification?view=netframeworkdesktop-4.8

并在构造函数中添加: this.DataContext = this;

  1. 然后添加以下属性:
private List<Group> _groups;

public List<Group> Groups
{
    get { return _groups; }
    set { _groups = value; OnPropertyChanged(); }
}

private Group _selectedGroup;


public Group SelectedGroup
{
    get { return _selectedGroup; }
    set 
    { 
        _selectedGroup = value; 
        OnPropertyChanged();
        if (_selectedGroup != null)
        {
            Students = _selectedGroup.Students;
        }
    }
}

private List<Student> _students;

public List<Student> Students
{
    get { return _students; }
    set { _students = value; OnPropertyChanged(); }
}
  1. 数据绑定:
<ListBox ItemsSource=”{Binding Groups}” SelectedItem=”{Binding SelectedGroup}” … />
<ListBox ItemsSource=”{Binding Students}” … />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

绑定listView以在另一个listView中显示与其关联的数据

来自分类Dev

使用jQuery Mobile,ListView没有在另一个页面中显示数据

来自分类Dev

使用另一个片段中的数据更新一个片段中的listview

来自分类Dev

使用ItemSource绑定访问ListView中的另一个datacontext

来自分类Dev

如何在另一个 ListView 中设置第一个 ListView 的数据?

来自分类Dev

单击 ListView 中的项目时,在另一个活动中显示列表

来自分类Dev

将关联到 ListView 单元格的数据传递给项目的另一个活动 onClick()

来自分类Dev

在另一个模型中访问 listView 模型

来自分类Dev

使用vb.net中的另一个listview从Access数据库填充listview

来自分类Dev

另一个ListView内部的动态ListView高度

来自分类Dev

将ListView行数据添加到另一个ListView并保存?安卓

来自分类Dev

如何使用ListView选择来确定Android中另一个ListView中的列表?

来自分类Dev

WPF-将Listview网格单元格绑定到另一个控件

来自分类Dev

WPF(MVVM)中的telerik GridView(或另一个listview)内的ListView

来自分类Dev

我可以在另一个 ListView 的 HeaderItem 中添加 ListView 或 GridView 吗?[UWP]

来自分类Dev

另一个关联列表中的关联列表

来自分类Dev

将ListView项目onclick解析为另一个活动,并匹配JSON中的特定数据

来自分类Dev

单击listview时,项目值应传递并显示给另一个活动

来自分类Dev

如何在 ListView 下面显示另一个布局

来自分类Dev

将ListView Item从一个listView拖放到另一个

来自分类Dev

从一个ListView移到另一个ListView

来自分类Dev

将ListView Item从一个listView拖放到另一个

来自分类Dev

如何将ListView上的数据动态传递给另一个活动

来自分类Dev

如何从ListView获取值并将JSON数据传递到另一个Activity

来自分类Dev

将数据从listView传递到另一个Activity EditText

来自分类Dev

需要将 json 数据传递到另一个页面用于 Listview

来自分类Dev

使用listview在一个片段上选择的项目在另一个片段上显示文本

来自分类Dev

滚动时ListView覆盖另一个布局

来自分类Dev

Android ListView覆盖另一个视图

Related 相关文章

  1. 1

    绑定listView以在另一个listView中显示与其关联的数据

  2. 2

    使用jQuery Mobile,ListView没有在另一个页面中显示数据

  3. 3

    使用另一个片段中的数据更新一个片段中的listview

  4. 4

    使用ItemSource绑定访问ListView中的另一个datacontext

  5. 5

    如何在另一个 ListView 中设置第一个 ListView 的数据?

  6. 6

    单击 ListView 中的项目时,在另一个活动中显示列表

  7. 7

    将关联到 ListView 单元格的数据传递给项目的另一个活动 onClick()

  8. 8

    在另一个模型中访问 listView 模型

  9. 9

    使用vb.net中的另一个listview从Access数据库填充listview

  10. 10

    另一个ListView内部的动态ListView高度

  11. 11

    将ListView行数据添加到另一个ListView并保存?安卓

  12. 12

    如何使用ListView选择来确定Android中另一个ListView中的列表?

  13. 13

    WPF-将Listview网格单元格绑定到另一个控件

  14. 14

    WPF(MVVM)中的telerik GridView(或另一个listview)内的ListView

  15. 15

    我可以在另一个 ListView 的 HeaderItem 中添加 ListView 或 GridView 吗?[UWP]

  16. 16

    另一个关联列表中的关联列表

  17. 17

    将ListView项目onclick解析为另一个活动,并匹配JSON中的特定数据

  18. 18

    单击listview时,项目值应传递并显示给另一个活动

  19. 19

    如何在 ListView 下面显示另一个布局

  20. 20

    将ListView Item从一个listView拖放到另一个

  21. 21

    从一个ListView移到另一个ListView

  22. 22

    将ListView Item从一个listView拖放到另一个

  23. 23

    如何将ListView上的数据动态传递给另一个活动

  24. 24

    如何从ListView获取值并将JSON数据传递到另一个Activity

  25. 25

    将数据从listView传递到另一个Activity EditText

  26. 26

    需要将 json 数据传递到另一个页面用于 Listview

  27. 27

    使用listview在一个片段上选择的项目在另一个片段上显示文本

  28. 28

    滚动时ListView覆盖另一个布局

  29. 29

    Android ListView覆盖另一个视图

热门标签

归档