2015-12-08 5 views
0

Я столкнулся с проблемой в синхронизации FlipView с Page Indicator, это мой код:FlipView и индикатор Page UWP

<Grid> 
     <FlipView x:Name="flipView1"> 
      <FlipView.ItemTemplate> 
       <DataTemplate > 
        <Grid Background="Transparent"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*" /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="*" /> 
         </Grid.RowDefinitions> 
         <Button Grid.Column="0" Grid.Row="0"> 
          <Image Source="{Binding Image}"/> 
         </Button> 
        </Grid> 
       </DataTemplate> 
      </FlipView.ItemTemplate> 
     </FlipView> 
     <ItemsControl ItemsSource="{Binding ItemsSource, ElementName=flipView1}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal" /> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Button Style="{StaticResource TextBlockButtonStyle}" 
         CommandParameter="{Binding}" 
         Command="{Binding DataContext.SelectCommand, ElementName=grid, Mode=OneWay}"> 
         <Grid Height="30" Width="30" Margin="10,10"> 
          <Ellipse Fill="#2c3389" RenderTransformOrigin="0.5,0.5" > 
           <Ellipse.RenderTransform> 
            <CompositeTransform ScaleX="1.25" ScaleY="1.25"/> 
           </Ellipse.RenderTransform> 
          </Ellipse> 
          <Ellipse Fill="Gray" Stroke="#2c3389" /> 
         </Grid> 

и это, как я получаю ItemSource к FlipView в коде позади:

var tests = new List<SampleItem>() 
{ 
    test1, 
    test2 
}; 
      flipView1.ItemsSource = tests; 
     } 

Я могу переходить от одной страницы к другой с моей FlipView, но индикатор страницы не работает:/ любая помощь, пожалуйста, как я могу связан Оба FlipView и ItemsControl к той же коллекции

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

+0

Ваш вопрос немного неясен. Вы должны привязать список к ItemsSource, но что такое «привязка данных»? Что вы имеете в виду? Почему вы не использовали ListView, как в примере из ссылки? – marcinax

ответ

3

Вы должны связать SelectedIndex вашего ItemsControl:

<ItemsControl SelectedIndex="{Binding SelectedIndex, ElementName=flipView1}" 
ItemsSource="{Binding ItemsSource, ElementName=flipView1}" > 

</ItemsControl> 
+1

спасибо Sit Jmix90 за ваш ответ, он работает сейчас: D – user3821206

+1

Что делать, если мой Flipview установлен Static в Xaml? Когда я пытаюсь выполнить свой метод, он разбивается, бросая необработанное исключение. Это мой вопрос: http://stackoverflow.com/questions/37423498/set-itemssource-of-control-to-another-controls-itemssource-that-is-static-and-s/37434916#37434916 – yalematta

2

для UWP нет событий SelectedIndex в ItemsControl, поэтому я использовал GridView вместо

<GridView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding ItemsSource, ElementName=companiesFlipView}" 
         SelectedIndex="{Binding SelectedIndex, ElementName=companiesFlipView}" VerticalAlignment="Bottom" 
         IsItemClickEnabled="False" 
         IsEnabled="False" 
         HorizontalAlignment="Center" Margin="0,10"> 
        <GridView.ItemsPanel> 
         <ItemsPanelTemplate> 
          <StackPanel Orientation="Horizontal"> 
          </StackPanel> 
         </ItemsPanelTemplate> 
        </GridView.ItemsPanel> 
        <GridView.ItemTemplate> 
         <DataTemplate> 
          <Grid Width="10" Height="10"> 
           <Ellipse Fill="Black"></Ellipse> 
          </Grid> 
         </DataTemplate> 
        </GridView.ItemTemplate> 
       </GridView> 

мы можем улучшить стили для выбранного элемента :)

+0

благодарит Lucky за ваш ответ: D – user3821206