我有一个显示图像的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。但这并不是正确的方法,因为保持两个集合同步似乎很麻烦。是否有可能通过单一集合或其他更有效的方式解决这个问题?
答案 0 :(得分:0)
据我所知,没有比你描述的更简单的方法。
但是同步并不是那么困难:在视图模型上只有一个CurrentIndex和一个DoublePageCurrentIndex属性。将这些绑定到flipviews的SelectedIndex属性,并通过其setter保持同步。