gpt4 book ai didi

wpf - 更改 ListView 中 GridView 行的背景颜色

转载 作者:行者123 更新时间:2023-12-05 00:10:55 28 4
gpt4 key购买 nike

我有一个 ListView 如下:

<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 正在从外部控件绑定(bind)到 DataView。

我真的不知道我怎么能做那样的事情,我们将不胜感激。

最佳答案

如何将 ColorProperty 添加到您的行(行)绑定(bind)到的类/模型。然后那里已经有了日期和数字。一旦你设置了它们,也设置了颜色,现在没有转换器,你可以只触发该属性:

<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>

关于wpf - 更改 ListView 中 GridView 行的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999691/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com