2012-09-20 2 views
2

В настоящее время я пытаюсь выяснить, как показывают различные типы объектов в GridView, посмотрите на эту Pic, например:Различные типы объектов-в ГРИД или ListView

последний элемент с правой стороны отличается от других элементов, поэтому, если я привяжу наблюдаемый коллектив к GridView, как я могу сказать, что последний элемент отображается в макете anohter.

В настоящее время я использую этот код 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; 

но у меня нет в настоящее время ни малейшего понятия, как дать последний элемент появляется в различный стиль

ответ

2

Простым способом было бы иметь два типа объектов в виде разных классов (например, MoviePicStyle + MoviePlainStyle). Затем переместите DataTemplate из GridView, чтобы каждый объект ect подбирается по типу, , например.

<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... 
0

Используйте свойство выбора шаблона сетки и в зависимости от типа объекта выберите шаблон. Я сделал то же самое в своем проекте. вам нужно написать свой собственный DataTemplateSelector.

я упомянул ниже ссылку

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

Смежные вопросы