我在将 PivotItem 动态添加到模板化和数据绑定的 Pivot 时遇到问题。
正在使用的类(稍微简化以使其易于理解);
class Menu {
string Name
List<Dish> Dishes_1;
List<Dish> Dishes_2;
List<Dish> Dishes_3;
}
class Dish {
string Description
string Price;
}
我想使用 Pivot 来显示菜单对象列表。我根据该列表中的项目数动态创建 PivotItems。因此,每个 PivotElement 都应遵循相同的布局并表现相同。布局模板和数据绑定在 .xaml 中完成,如下所示;
<phone:Pivot x:Name="Mainpivot">
<phone:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</phone:Pivot.HeaderTemplate>
<phone:Pivot.ItemTemplate>
<DataTemplate>
<ListBox>
<TextBlock Text="Dishes_1"/>
<ListBox ItemsSource="{Binding Dishes_1}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Description}"/>
<TextBlock Text="{Binding Price}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
// ...
// this is repeated 3 times;
//a textblock and listbox per List<Dishes> in the Menu-class
</ListBox>
</DataTemplate>
</phone:Pivot.ItemTemplate>
</phone:Pivot>
我使用以下内容填充 de .cs 文件中的 Pivot:
foreach (Menu m in List_Menus) {
PivotItem p = new PivotItem();
p.DataContext = m;
Mainpivot.Items.Add(p);
}
当我将 DataContext 设置为 Menu-Object 时,DataBinding(通过 xaml)在这里不需要更多代码(所以我认为?)。
现在的问题是;它不起作用...
通过使用调试器查看,创建的 PivotItem 的行为似乎与 Mainpivot 中定义的模板不同(或者我认为如此)。查看 Mainpivot 确实表明已添加 PivotItems,但仅此而已,我相信它们只是空的全空 PivotItems。在模拟器中执行时,它只显示一个空的 Pivot。
有什么想法吗?
//PS:我不使用 ViewModel,因为我发现它们(作为初学者)作为概念很混乱。我不认为这与问题有任何关系吗?