2

私は現在、GridView でさまざまな種類のオブジェクトを表示する方法を理解しようとしています。たとえば、この写真を見てください。

右側の最後の要素は他の要素とは異なるため、observablecollection を GridView にバインドすると、最後の要素が別のレイアウトに表示されていると言えます。

現在、このXAMLコードを使用しています

<GridView x:Name="startView" ItemsSource="{Binding}" Grid.Column="1" Grid.Row="2" SelectionMode="None" Width="Auto">
                <GridView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock x:Name="DetailTitle" Height="74" Text="{Binding Title}" />
                            <Image x:Name="Image" Height="Auto" Width="Auto" Margin="0" Stretch="None" Source="{Binding LocalCoverUrl}" Visibility="Collapsed" />
                        </StackPanel>
                    </DataTemplate>
                </GridView.ItemTemplate>
                <GridView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="2" />
                    </ItemsPanelTemplate>
                </GridView.ItemsPanel>
            </GridView>

後ろのこのコード:

ObservableCollection<Movie> recentlyStarted = await Api.RecentlyStarted(3);
startView.DataContext = recentlyStarted;

しかし、現在、最後の要素を別のスタイルで表示する方法がわかりません

4

2 に答える 2

2

簡単な方法は、2 種類のオブジェクトを異なるクラス (例: MoviePicStyle + MoviePlainStyle) として持つことです。次に、DataTemplate を GridView から移動して、各オブジェクトが種類ごとに選択されるようにします。

<Window.Resources>
  <DataTemplate DataType="{x:Type ViewModel:MoviePicStyle}">
    <StackPanel>
       <TextBlock x:Name="DetailTitle" Height="74" Text="{Binding Title}" />
       <Image x:Name="Image" Height="Auto" Width="Auto" Margin="0" Stretch="None" Source="{Binding LocalCoverUrl}" Visibility="Collapsed" />
    </StackPanel> 
  <DataTemplate DataType="{x:Type ViewModel:MoviePlainStyle}">
      ...Different View...
  </DataTemplate>
</Window.Resources>
<GridView...
于 2012-09-20T10:15:13.540 に答える
-1

gridview のテンプレート セレクタ プロパティを使用し、オブジェクトのタイプに応じてテンプレートを選択します。私は自分のプロジェクトで同じことをしました。独自の DataTemplateSelector を作成する必要があります。

以下のリンクを参考にしました

http://babaandthepigman.wordpress.com/2012/02/08/datatemplateselector-winrt/

于 2012-09-20T11:42:36.580 に答える