1

我有一个显示图像的 FlipView。我希望用户能够选择是否要一次查看一张或两张图像。这可以通过一个集合来完成,还是我需要为两种模式设置两个不同的集合?

我现在拥有的单个图像是一个名为 PageCollection 的集合,其中包含一个名为 Page 的类,该类具有 Image 属性。

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

我认为我可以解决它的方法是拥有另一个集合,该集合保留像 Pages 这样具有两个图像属性而不是一个的类。像这样:

<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。但这感觉不是正确的方法,因为保持两个集合同步似乎很麻烦。是否可以通过单个集合或其他更有效的方式来解决这个问题?

4

1 回答 1

0

据我所知,没有比你描述的更简单的方法了。

但同步并不是那么困难:只需在视图模型上有一个 CurrentIndex 和一个 DoublePageCurrentIndex 属性。将这些绑定到翻转视图的 SelectedIndex 属性,并通过它们的设置器使它们保持同步。

于 2013-07-17T09:31:37.963 回答