1

所以我在我的 Page.Resources 中定义了一个 DataTemplate,它在 GridView 中用于显示我的数据。

它与 VS 2012 附带的 GroupedItemsPage 模板基本相同。

        <DataTemplate x:Key="menuGroupTemplate">
        <Grid x:Name="itemSquare" HorizontalAlignment="Left" Width="250" Height="250" Tapped="itemSquare_Tapped">
            <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
                <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
            </Border>
            <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
                <TextBlock Text="{Binding DisplayName}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="60" Margin="15,0,15,0"/>
                <TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
            </StackPanel>
        </Grid>
    </DataTemplate>

现在这使我的组看起来像这样:

线性订购商品

所有物品看起来都一样,正方形大小都一样!

现在我想创建一个 DataTemplate ,它使组中的第一个项目比其他项目大很多,因此它看起来像这样:(源自 IdeaPress Wordpress 应用程序)

不同的订购项目

所以现在我想更改组中第一个元素的样式/外观/大小,但我找不到检索第一个元素并更改其大小的方法。

Ideapress 应用程序的问题在于,它完全是用 HTML/JS 编写的,而我使用的是 C#,而且他们没有使用任何 DataTemplate 或类似的东西来显示他们的数据,所以简单地从他们那里复制它对我来说并不奏效. 至少两者都是 Windows 商店应用程序。

我考虑在构造函数中这样做,就像其他一些场景一样失败。但正如我的感觉,必须有一种不同的、更优雅的方式来实现这一点。

任何帮助将不胜感激。

4

1 回答 1

1

为此,您需要两个不同的模板。此链接很有用,并提供了以优雅方式执行所需操作的示例。

于 2013-08-02T13:13:19.170 回答