2015-12-07 2 views
0

Я работаю над окнами универсальное приложение, у меня есть FlipView с 2-х страниц, каждая страница содержит 4 кнопки, я хочу, когда я прокручиваю от page1 я получаю стр.2, я попробовал этот путь:SelectionChanged и FlipView

<Page.Resources> 
<DataTemplate x:Key="FlipViewItemTemplate"> 
<Grid Background="Transparent"> 
<Grid.ColumnDefinitions> 
<ColumnDefinition Width="*" /> 
<ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 
<Grid.RowDefinitions> 
<RowDefinition Height="*" /> 
<RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
<Button Grid.Column="0" Grid.Row="0" /> 
<Button Grid.Column="0" Grid.Row="1" /> 
<Button Grid.Column="1" Grid.Row="0" /> 
<Button Grid.Column="1" Grid.Row="1" /> 
</Grid> 
</DataTemplate> 
<DataTemplate x:Key="FlipViewItemTemplate1"> 
<Grid Background="Transparent"> 
<Grid.ColumnDefinitions> 
<ColumnDefinition Width="*" /> 
<ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 
<Grid.RowDefinitions> 
<RowDefinition Height="*" /> 
<RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
<Button Grid.Column="0" Grid.Row="0" /> 
<Button Grid.Column="0" Grid.Row="1" /> 
<Button Grid.Column="1" Grid.Row="0" /> 
<Button Grid.Column="1" Grid.Row="1" /> 
</Grid> 
</DataTemplate> 
</Page.Resources 

Я назвал этот метод из моего FlipView имя flipView1:

private void flipView1_SelectionChanged_1(object sender, SelectionChangedEventArgs e) 
    { 
    flipView1.ItemTemplate = Resources["FlipViewItemTemplate"] as DataTemplate; 
    } 

что я получаю одна страницы с 4-мя кнопок без прокрутки, есть ли способ я могу использовать, чтобы показать страницу с различной прокруткой

спасибо за помощь

+0

это возможно в универсальных приложениях? – miratum

ответ

1

DataTemplateSelector

Может быть решение это использовать DataTemplateSelector

вот пример: 1) Класс должен наследоваться от DataTemplateSelector nanamespace ExploringOfficeRestAPI.Styles.DataTemplateSelectors { открытый класс FileFolderDataTemplateSelector: DataTemplateSelector { public DataTemplate FileTemplate {get; задавать; } public DataTemplate FolderTemplate {get; задавать; }
protected override DataTemplate SelectTemplateCore (объект объекта, контейнер DependencyObject) { var viewModelPublic = item как OneDrivePublicFile; if (viewModelPublic! = Null) { if (viewModelPublic.IsFile()) { { возвращение FileTemplate; }

  return FolderTemplate; 
     }   
     return FolderTemplate; 

    } 
} 

} 2) Определите ваш XAML DataTemplate: Grid.Row = "0" Grid.RowSpan = "2" Margin = "0" VerticalAlignment = "Stretch" Высота = "150" ширина = "150"
SelectionHighlightColor = "{StaticResource EORAForegroundBrush}" /> Grid.Row = "0" маржа = "0,0,10,0" VerticalAlignment = "Вверх" Н orizontalAlignment = "правый" /> Grid.Row = "1" Маржа = "10,0,0, -20" VerticalAlignment = "Низ" />

</Grid> 

</DataTemplate> 
<DataTemplate x:Key="FileTemplate"> 
    <Grid > 
     <Grid.RowDefinitions> 
      <RowDefinition Height="100"/> 
      <RowDefinition Height="50"/> 
     </Grid.RowDefinitions> 

     <Image Source="{Binding ThumbnailUrl}" Width="150" Height="150" Margin="0,0,0,0" Grid.RowSpan="2" VerticalAlignment="Top" /> 
     <TextBlock Text="{Binding name}" Foreground="{StaticResource EORAForegroundBrush}" 
         Style="{StaticResource EORATextBlockStyle}" Width="auto" Height="50" 
          Grid.Row="1" Margin="10,0,0,-20" VerticalAlignment="Bottom" HorizontalAlignment="Left" /> 

    </Grid> 
</DataTemplate> 

3) Определить селектор в вашем XAML : XMLNS: селектор = "с помощью: ExploringOfficeRestAPI.Styles.DataTemplateSelectors"

 <selector:FileFolderDataTemplateSelector 
        x:Key="FileFolderDataTemplateSelector" 
        FolderTemplate="{StaticResource FolderTemplate}" 
        FileTemplate="{StaticResource FileTemplate}"/> 

4) И последнее определение ItemTemplateSelector = "{StaticResource FileFolderDataTemplateSelector}" для FlipView

+0

благодарит сэра за ваш ответ :) – miratum

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