我想在一些书中进行搜索,然后每本书的结果出现在单独的枢轴控件项中。每一个都由该 PivotItem 内的一个单独的 LongListSelector 控件表示。现在我想知道我应该ItemsSource
为 LongListSelector 还是为其作为 Pivot 的父级指定?
所有书籍都有一本字典:
private Dictionary<string, List<Model>> ItemResources = new Dictionary<string, List<Model>>();
和List<Model>
每本书的一个,它将被保存为ItemResources
上面的一个值。
这就是我所做的:
foreach (var translation in ItemResources)
{
PivotItem pivotItem = new PivotItem
{
Header = translation.Key
};
LongListSelector lls = new LongListSelector
{
HideEmptyGroups = false,
IsGroupingEnabled = false
};
lls.ItemTemplate = Resources["template"] as DataTemplate;
lls.ItemsSource = translation.Value;
pivotItem.Content = lls;
ResultPivot.Items.Add(pivotItem);
}
并且template
是一个可重用的DataTemplate,我为每个pivotItem内的每个longlistselector重新生成它ResultPivot
:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="template">
<StackPanel Margin="0,0,0,0" Orientation="Vertical">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Height="Auto" VerticalAlignment="Top" Width="455" Margin="3,20,3,0">
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
<TextBlock Text="{Binding Number}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
</StackPanel>
<StackPanel Height="Auto" VerticalAlignment="Top" HorizontalAlignment="Left" Width="455" Margin="3,0,3,20">
<TextBlock Text="{Binding Text}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
问题是运行后屏幕上什么也没有出现。我在调试中看到值在那里,但数据绑定似乎有问题。我该如何解决?谢谢
(这是一个 Windows Phone 8 应用程序,但因为 WPF 及其广泛社区的概念是相同的,所以我也添加了它)