我只是从 C++ 背景中学习 WPF 和 XAML 的基本概念,所以其中一些对我来说有点陌生。我正在使用 Expression Blend 来帮助我掌握 XAML。
我正在制作一个在简单 XML 数据源中显示记录的基本应用程序:
<photos>
<photo>
<image>Assets\Item01.png</image>
<description>Strawberry</description>
</photo>
<photo>
<image>Assets\Item02.png</image>
<description>Orange</description>
</photo>
<photo>
<image>Assets\Item03.png</image>
<description>Pineapple</description>
</photo>
...
</photos>
我已将此数据“photoDataSource”绑定到网格,并粘贴了一些显示第一条记录的文本框和图像字段。在 XAML 中:
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource photoDataSource}}" Margin="0,0,0,1" Background="#FF1D1D1D">
<Image Height="104" Width="104" Source="{Binding XPath=/photos/photo/image}" Margin="8,62,0,0" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBox Height="23" Margin="8,8,6,0" TextWrapping="Wrap" Text="{Binding XPath=/photos/photo/description}" VerticalAlignment="Top"/>
<TextBox Height="23" Margin="8,35,6,0" TextWrapping="Wrap" Text="{Binding XPath=/photos/photo/image}" VerticalAlignment="Top"/>
<Button Content="Next Product" Margin="213,97,297,0" Height="44" VerticalAlignment="Top"/>
</Grid>
这将显示两个分别包含“Strawberry”和“Assets\Item01.png”的文本框,以及包含文本“Next Product”的图像和按钮。如您所见,我已将集合“photoDataSource”绑定到父网格。运行时,它会显示集合中的第一项。
如何触发按钮在运行时显示集合(和循环)中的下一个项目?
我不打算使用任何代码隐藏来执行此操作,因为我不会更改任何数据本身,只是显示哪个项目。但也许我以错误的方式解决这个问题?
理想情况下,在此示例之后,我希望完全删除按钮并在情节提要动画完成后自动更改记录(使用触发器'StoryboardCompletedTrigger'
)。