2017-06-29 28 views
0

我正在使用GridView(我甚至尝试了ListView为此目的)作为我的FlipView的上下文指示器。 问题是当我尝试点击/点击一个gridViewItem为了让它被选中,因此也改变了flipviewItem索引,gridview不是接收任何点击或点击交互由用户改变它。但是,当我直接从flipview更改flipviewItem时,它会按预期工作,并且选定的gridview项目也会相应地更改。uwp FlipView上下文指标作为GridView没有收到用户交互

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; 
} 

回答

1

您需要设置IsItemClickEnabledTrueGridView

+0

我想这和它仍然没有工作,但它应该即使没有它的工作,因为我不想赶点击事件,我只希望更改与用户的交互选择像一个正常的ListView或GridView控件一样。 – touseef

+0

我刚刚评论了FlipView中的那段代码(实际上是一个用户控件),现在我可以像GridView一样工作,并且能够与GridView进行交互 – touseef

+0

您的usercontrol被放置在gridview的顶部吗? –

1

我能够与@JustinXL的帮助来解决它,我把FlipView和GridView行和由FlipView的行跨度到所以我得到了我想要的相同的用户界面,但现在它按预期工作,显然,如果他们在同一行中,FlipView会干扰GridView上的UI交互。

<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> 
相关问题