Windows 8 Metro:ListView 忽略 ItemTemplate

4
我正在按照这个教程进行操作,但遇到了一个奇怪的问题。其中有一部分说:

在 SplitPage.xaml 中,我们还需要更新 itemListView 的 ItemTemplate 属性,使用我们的 DefaultListItemTemplate 资源替代默认模板 Standard130ItemTemplate。下面是 itemListView 的更新后 XAML。

然而,无论我做什么,它都显示默认模板的列表,看起来像这样。以下是我的代码:

<DataTemplate x:Key="DefaultListItemTemplate">
    <Grid HorizontalAlignment="Stretch" Width="Auto" Height="110" Margin="10,10,10,0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <!-- Green date block -->
        <Border Background="{StaticResource BlockBackgroundBrush}" Width="110" Height="110" />
        <ContentControl Template="{StaticResource DateBlockTemplate}" />
        <StackPanel Grid.Column="1"  HorizontalAlignment="Left" Margin="12,8,0,0">
            <TextBlock Text="{Binding Title}" FontSize="26.667" TextWrapping="Wrap"
                   MaxHeight="72" Foreground="#FFFE5815" />
            <TextBlock Text="{Binding Author}" FontSize="18.667" />
        </StackPanel>
    </Grid>
</DataTemplate>

...在页面资源中,以及

<ListView
    x:Name="itemListView"
    AutomationProperties.AutomationId="ItemsListView"
    AutomationProperties.Name="Items"
    TabIndex="1"
    Grid.Row="1"
    Margin="-10,-10,0,0"
    Padding="120,0,0,60"
    ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
    IsSwipeEnabled="False"
    SelectionChanged="ItemListView_SelectionChanged"
    ItemTemplate="{StaticResource DefaultListItemTemplate}"/>

...在页面的网格中。

我已经尝试内联模板并修改Standard130ItemTemplate, 但都没有成功。指定不存在的模板会导致构建错误。

你有什么想法我可能做错了什么吗?

1个回答

4
显然,这是由于我的屏幕分辨率较低(1280x800)导致的。我没有注意到Split Page模板为FilledOrNarrow定义了以下VisualState:
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="ItemTemplate">
                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource Standard80ItemTemplate}"/>
                </ObjectAnimationUsingKeyFrames>

我尝试在模拟器中运行它,任何比它更宽的分辨率(例如1366x768)都可以正常工作。


2
我遇到了完全相同的问题,感谢您的解释。 - Thomas Levesque
我刚刚也遇到了完全相同的问题。很奇怪,为什么会导致错误呢? - garfbradaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接