2017-06-29 2 views
0

J'utilise un GridView (et j'ai même essayé ListView à cet effet) comme indicateur de contexte de mon FlipView. Le Problème est que lorsque j'essaie de taper/cliquer sur un gridViewItem pour qu'il soit sélectionné et change donc aussi l'index flipviewItem, le gridview n'est pas recevoir aucune interaction de clic ou de clic de par l'utilisateur pour le changer . Cependant, quand je change flipviewItem de directement flipview, cela fonctionne comme prévu et l'élément gridview sélectionné est également modifié en conséquence.uwp Indicateur de contexte FlipView étant donné que GridView n'obtient pas l'interaction de l'utilisateur

CODE

<Grid> 
    <FlipView x:Name="MainFlipView" ItemsSource="{x:Bind MyItemsSource}" Visibility="Visible" 
       SelectionChanged="FlipChanged"> 
     <FlipView.ItemTemplate> 
      <DataTemplate x:DataType="data:Video"> 
       <userControls:FlipDataTemplate /> 
      </DataTemplate> 
     </FlipView.ItemTemplate> 
    </FlipView> 
    <GridView SelectionChanged="ContextChanged" 
       Name="ContextIndicator" 
       HorizontalAlignment="Right" VerticalAlignment="Bottom" 
       Margin="0,0,12,12" 
       ItemsSource="{x:Bind MyItemsSource}"> 
     <GridView.ItemTemplate> 
      <DataTemplate x:DataType="data:Video"> 
       <Image Width="40" Height="40" Source="{x:Bind Display}"/> 
      </DataTemplate> 
     </GridView.ItemTemplate> 
    </GridView> 
</Grid> 

C#

private void FlipChanged(object sender, SelectionChangedEventArgs e) 
{ 
    ContextIndicator.SelectedIndex = MainFlipView.SelectedIndex; 
} 
private void ContextChanged(object sender, SelectionChangedEventArgs e) 
{ 
    MainFlipView.SelectedIndex = ContextIndicator.SelectedIndex; 
} 

Répondre

1

Vous devez définir IsItemClickEnabled-True sur votre GridView.

+0

J'ai essayé et son ne fonctionne toujours pas, mais il devrait fonctionner même sans cela parce que je ne veux pas attraper événement cliqué, je veux seulement changer la sélection avec l'interaction de l'utilisateur comme un listview normal ou gridview fait. – touseef

+0

Je viens de commenter le FlipView dans ce morceau de code (qui est en fait un contrôle utilisateur) et maintenant je suis capable d'interagir avec le gridview comme cela devrait normalement fonctionner – touseef

+0

Y a-t-il une chance que votre commande USB soit placée sur votre grille? –

1

j'ai pu le résoudre avec l'aide de @JustinXL et je mis FlipView et GridView en lignes et fait RowSpan de FlipView à donc je suis même interface utilisateur que je voulais, mais maintenant il fonctionne comme prévu, apparemment si elles sont dans la même rangée, puis FlipView interfère avec l'interaction de l'interface utilisateur sur GridView.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <FlipView x:Name="MainFlipView" ItemsSource="{x:Bind MyItemsSource}" Visibility="Visible" Grid.RowSpan="2" 
       SelectionChanged="FlipChanged"> 
     <FlipView.ItemTemplate> 
      <DataTemplate x:DataType="data:Video"> 
       <userControls:FlipDataTemplate /> 
      </DataTemplate> 
     </FlipView.ItemTemplate> 
    </FlipView> 
    <GridView SelectionChanged="ContextChanged" Grid.Row="1" 
       Name="ContextIndicator" 
       HorizontalAlignment="Right" 
       VerticalAlignment="Bottom" 
       Margin="0,0,12,8" 
       Canvas.ZIndex="1" 
       ItemsSource="{x:Bind MyItemsSource}"> 
     <GridView.ItemTemplate> 
      <DataTemplate x:DataType="data:Video"> 
       <Image Width="40" Height="40" Source="{x:Bind Display}"/> 
      </DataTemplate> 
     </GridView.ItemTemplate> 
    </GridView> 
</Grid>