2013-07-17 1 views
1

나는 이미지를 보여주는 FlipView를 가지고있다. 사용자가 한 번에 하나 또는 두 개의 이미지를보고 싶은지 선택할 수 있기를 바랍니다. 단일 컬렉션에서이 작업을 수행 할 수 있습니까? 아니면 두 가지 모드에서 두 가지 컬렉션을 사용해야합니까?FlipView - 컬렉션의 두 항목에 바인딩 할 수 있습니까?

하나의 이미지에 대해 지금 Image라는 속성을 가진 Page라는 클래스가 포함 된 PageCollection이라는 컬렉션이 있습니다.

<FlipView x:Name="flipView" ItemsSource="{Binding PageCollection}"> 
    <FlipView.ItemTemplate> 
    <DataTemplate>   
     <Image Source="{Binding Image, Converter={StaticResource ImageConverter}}"/> 
    </DataTemplate> 
    </FlipView.ItemTemplate> 
</FlipView> 

내가 그것을 해결할 수 있다고 생각하는 방법 대신 한 두 개의 이미지 속성을 한 페이지 같은 수준을 유지 다른 모음을하는 것입니다. 이렇게 :

<FlipView x:Name="flipView" ItemsSource="{Binding PageCollection2}"> 
    <FlipView.ItemTemplate> 
    <DataTemplate> 
     <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <Image Source="{Binding Image1, Converter={StaticResource ImageConverter}}"/> 
     <Image Source="{Binding Image2, Converter={StaticResource ImageConverter}}"/> 
     </Grid> 
    </DataTemplate> 
    </FlipView.ItemTemplate> 
</FlipView> 

필요한 경우 ItemsSource 및 DataTemplate을 전환하십시오. 하지만 두 컬렉션을 동기화 된 상태로 유지하는 것이 번거롭기 때문에이 작업을 수행하는 것이 올바른 방법이라고 생각하지 않습니다. 하나의 컬렉션으로 이것을 해결할 수 있습니까? 아니면 좀 더 효율적인 방법으로 해결할 수 있습니까?

답변

0

내가 아는 한, 설명했던 것보다 간단한 방법은 없습니다.

그러나 동기화는 그리 어렵지 않습니다. 뷰 모델에 CurrentIndex 및 DoublePageCurrentIndex 속성 만 있으면됩니다. 이들을 플립 뷰의 SelectedIndex 속성에 바인딩하고 설정자를 통해 동기화 된 상태로 유지합니다.

관련 문제