在Windows Phone Project IM上正在处理的我需要一个页面,该页面具有同一班级的项目列表,它应该显示为
之类的内容图像 - 文字 文字 - 图像 图像 - 文字 文字 - 图像 图像 - 文字 文字 - 图像
<ScrollViewer Name="NoticiasScroll" Grid.Row="1" Margin="0,38,0,0">
<ItemsControl x:Name="items" Height="653">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="218" VerticalAlignment="Top" Background="White" Width="440" Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Name="NewsImg" Source="/Assets/Images/pipa.png" Stretch="Fill" Grid.Column="0"/>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="3*" />
</Grid.RowDefinitions>
<TextBlock TextAlignment="Right" Text="{Binding titulo}" Foreground="Black" VerticalAlignment="Top" Height="39" Width="200" Margin="0,10,10,0" FontSize="28" FontFamily="Helvetica" HorizontalAlignment="Right"/>
<TextBlock TextAlignment="Right" Grid.Row="1" Text="{Binding texto}" Foreground="Black" FontFamily="Helvetica" FontSize="18" TextWrapping="Wrap" Margin="22,0,8,0" Width="190"/>
</Grid>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
现在我有这个,但是这样所有项目都以相同的格式出现。我该如何做,以便它们在两种格式之间交替?
您可以扩展与具有2个可见性属性的ItemScontrol绑定的类。
public class MyItem
{
public Visibility ShowEven { get; set; }
public Visibility ShowOdd { get; set; }
public string Titulo { get; set; }
public string Texto { get; set; }
}
设置交替的可见性:
for (int i = 0; i < myItems.Count; i++)
{
bool isEven = i % 2 == 0;
myItems[i].ShowEven = isEven ? Visibility.Visible : Visibility.Collapsed;
myItems[i].ShowOdd = isEven ? Visibility.Collapsed : Visibility.Visible;
}
items.ItemsSource = myItems;
在您的ItemTemplate内使用2个网格,这些网格绑定到可见性属性。
<ItemsControl Name="items">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid Visibility="{Binding ShowEven}" Background="Blue">
<Image />
<Image />
</Grid>
<Grid Visibility="{Binding ShowOdd}" Background="Red">
<TextBlock />
<TextBlock />
</Grid>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>