我有一个列表视图如下:
<ListView x:Name="lvLedger"
Height="{Binding Path=GridHight, ElementName=ledgerList}"
Width="{Binding Path=GridWidth, ElementName=ledgerList}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ItemsSource="{Binding}"
BorderThickness="0"
Background="Transparent"
BorderBrush="Transparent"
DataContextChanged="lvLedger_DataContextChanged">
<ListView.View>
<GridView>
<GridViewColumn x:Name="c2ServiceDate" Header="Service Date" Width="82" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=servicedate}"
ToolTipService.ShowDuration="60000"
ToolTipService.InitialShowDelay="0"
ToolTip="{Binding Path=type}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="c3CPT" Header="Code" Width="50">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=cpt}"
ToolTipService.ShowDuration="60000"
ToolTipService.InitialShowDelay="0"
ToolTip="{Binding Path=type}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
<!--More columns here--> </GridViewColumn></GridView></ListView.View></ListView>
我希望能够根据服务日期和代码的组合更改行的背景颜色。所以我可能连续3行具有相同的服务日期和代码,它们应该具有相同的背景,然后是2行具有不同的颜色,然后基于相同的规则交替
1/19/11 356(蓝色)
1/19/11 356(蓝色)
1/19/11 235(红色)
2/20/11 356(蓝色)
2/20/11 356(蓝色)
2/20/11 356(蓝色)
2/21/11 564(红色)
2/21/11 564(红色)
2/21/11 564(红色)
2/21/11 564(红色)
2/25/11 798(蓝色)
和... ... ...
ItemSource被外部控件绑定到DataView。
我真的不知道我怎么能做那样的事情,任何帮助都会得到满足。
答案 0 :(得分:2)
如何将ColorProperty添加到您的行(行)绑定的类/模型中。那时你已经有了日期和数字。一旦你设置它们,也设置颜色,现在没有转换器,你可以只触发该属性:
<Style x:Key="ListViewItemStyle" TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border" SnapsToDevicePixels="true">
<GridViewRowPresenter VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding ColorProperty}" Value="Blue">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
<DataTrigger Binding="{Binding ColorProperty}" Value="Red">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>