【发布时间】:2020-12-16 22:15:16
【问题描述】:
我在每个列表中都有列表和项目的应用程序。该列表及其项目存储在两个表中。列表数据类似于“Grocery”,列表项类似于“bananas”等。您可以在应用程序中添加列表和项目。现在我有一个列出列表名称的列表内容页面。点击一个,您将转到该列表中项目的内容页面。这可行,但我想使用来自 AppShell.xaml.cs 文件中的数据库查询的列表名称填充 Shell 浮出控件。我想做这样的事情:
ShellSection shell_section = new ShellSection();
var lists = await SLOMBListDataStore.GetSLOMBListsAsync(true);
foreach (var list in lists)
{
shell_section.Title = list.ListName;
shell_section.Icon = "tab_feed.png";
shell_section.Items.Add(new ShellContent() { Content = new SLOMBListDataPage(new SLOMBListDataViewModel(list.id)) });
this.Items.Add(shell_section);
}
BindingContext = this;
顺便说一句,这不起作用。如果我使用 shell_section1、shell_section2 等,则可以手动创建条目,但是您必须对列表进行硬编码。是否可以做我想做的事,从查询数据创建弹出窗口?谢谢
【问题讨论】:
-
您每次都使用相同的 ShellSection。您需要在 inside 循环中创建它,而不是在 outside
-
我必须在每个循环中销毁对象。我不知道该怎么做。谷歌表示调用垃圾收集器是个坏主意。我希望当我将它添加到项目时,我可以重复使用它。
-
你为什么要这样做?您仍在 Items 集合中使用它。只需将其移动到循环内即可。
-
好吧,我现在很尴尬。我仍然无法让数据库正常工作,但是当我列出一个演示对象列表时,一切正常。感谢您的快速回复..