【发布时间】:2018-05-02 08:34:54
【问题描述】:
有没有办法让 AlternationCount 避免为每个新的 CollectionViewSource 重置?鉴于下面的代码,我试图在消息之间交替背景。消息按天分组(今天、昨天、2 天前等),这就是破坏 AlternationCount 的原因。假设我希望奇数索引具有白色背景,偶数索引具有灰色背景,这将为每个新的一天/组重置。
<ItemsControl AlternationCount="2">
<ItemsControl.Resources>
<CollectionViewSource x:Key="MessagesStackPanel" Source="{Binding Messages}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="MessageDate" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</ItemsControl.Resources>
</ItemsControl>
背景是用这样的setter设置的
<Grid.Style>
<Style>
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="LightGray"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Style>
例如,我今天收到 3 条消息,昨天收到 2 条消息,两天前收到 4 条消息 - 它们的背景将是这样的:
白色
Gray
白色
白色
Gray
白色
Gray
白色
Gray
这会在今天和昨天之间给我留下一个双白色背景,这真的破坏了设计。有没有办法为每个新组重置 AlternationIndex 不?
【问题讨论】:
标签: wpf xaml mvvm itemscontrol collectionviewsource