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;
}
我尝试了其他方法来附加数据,CollectionViewSource在xaml中,项目正常,但没有分配给视图,所以尝试了下面的方法,并从UI中删除了绑定。
CollectionViewSource vs = new CollectionViewSource();
vs.IsSourceGrouped = true;
vs.Source = staticData.GridViewData;
MenuGridView.ItemsSource = vs.View;
基本上是从c#代码中设置集合视图源,而不是绑定,但仍然想知道为什么上面的方法不起作用。