Gridview(集合视图源)没有从调用C#UWP中的API的awaitable函数获取源

本文关键字:API 中的 C#UWP 调用 函数 awaitable 获取 集合 视图 Gridview | 更新日期: 2023-09-27 17:58:29

这是我的CollectionViewSource 的代码

 <CollectionViewSource x:Name="GridviewCVS"  IsSourceGrouped="True" />  

同样的代码是

  ObservableCollection<GroupInfoList> list = new ObservableCollection<GroupInfoList>();
       list = await getMenuGrouped();

            GridviewCVS.Source = list;

当我在没有等待和同步的情况下运行它时,我会在我的gridview中获取值,但当我尝试异步运行它并从HTTPClient获取数据时,它不会显示任何值,添加了断点,它会在其中显示数据,但不会在gridview中显示。

     public async static Task<ObservableCollection<MenuModel>> GetMenu()
    {
        ObservableCollection<MenuModel> _menu = new ObservableCollection<MenuModel>();
        MenuVM viewModel = new MenuVM();
        List<MenuModel> AllMenuItems = await viewModel.GetAllMenuItems();
        foreach (var item in AllMenuItems)
        {
            _menu.Add(item);
        }
        return _menu;

    }
    public async static Task<ObservableCollection<GroupInfoList>> getMenuGrouped()
    {
        ObservableCollection<GroupInfoList> groups = new ObservableCollection<GroupInfoList>();
        ObservableCollection<MenuModel> _menu = new ObservableCollection<MenuModel>();
        _menu = await GetMenu();
        var query = from item in _menu
                    group item by item.CategoryName into g
                    orderby g.Key
                    select new { GroupName = g.Key, Items = g };
        foreach (var g in query)
        {
            GroupInfoList info = new GroupInfoList();
            info.Key = g.GroupName;
            foreach (var item in g.Items)
            {
                info.Add(item);
            }
            groups.Add(info);
        }
        return groups;
    }

Gridview(集合视图源)没有从调用C#UWP中的API的awaitable函数获取源

我尝试了其他方法来附加数据,CollectionViewSource在xaml中,项目正常,但没有分配给视图,所以尝试了下面的方法,并从UI中删除了绑定。

            CollectionViewSource vs = new CollectionViewSource();
            vs.IsSourceGrouped = true;
            vs.Source = staticData.GridViewData;
            MenuGridView.ItemsSource = vs.View;

基本上是从c#代码中设置集合视图源,而不是绑定,但仍然想知道为什么上面的方法不起作用。