Xamarin Shell 从数据库数据创建的 Flyout
Xamarin Shell Flyout created from database data
我有列表应用程序和每个列表中的项目。列表及其项目存储在两个表中。列表数据就像“杂货店”,列表项就像“香蕉”等。您可以在应用程序中添加列表和项目。现在我有一个列出列表名称的列表内容页面。点击其中一个,您将转到该列表中项目的内容页面。这可行,但我想使用 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 等,则可以手动创建条目,但是您必须对列表进行硬编码。是否可以做我想做的事,从查询数据创建弹出窗口?谢谢
尝试将初始化代码放入 for 循环中,例如:
var lists = await SLOMBListDataStore.GetSLOMBListsAsync(true);
foreach (var list in lists)
{
ShellSection shell_section = new ShellSection();
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);
}
您需要为每条记录创建一个新实例。
我有列表应用程序和每个列表中的项目。列表及其项目存储在两个表中。列表数据就像“杂货店”,列表项就像“香蕉”等。您可以在应用程序中添加列表和项目。现在我有一个列出列表名称的列表内容页面。点击其中一个,您将转到该列表中项目的内容页面。这可行,但我想使用 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 等,则可以手动创建条目,但是您必须对列表进行硬编码。是否可以做我想做的事,从查询数据创建弹出窗口?谢谢
尝试将初始化代码放入 for 循环中,例如:
var lists = await SLOMBListDataStore.GetSLOMBListsAsync(true);
foreach (var list in lists)
{
ShellSection shell_section = new ShellSection();
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);
}
您需要为每条记录创建一个新实例。