2017-06-29 74 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> 
相關問題