C# 根据同一行中另一个listviewitem的值,更改WPF中listviewitem的文本颜色
我想根据同一行中“MarID”listview项的第一个字符的值,将“Bedrag”Textblock项的文本颜色更改为绿色或红色 当marID的第一个字符等于1时,文本颜色应为绿色,当它等于2时,文本颜色应为红色 我的.xaml文件中有以下代码:C# 根据同一行中另一个listviewitem的值,更改WPF中listviewitem的文本颜色,c#,wpf,visual-studio,xaml,C#,Wpf,Visual Studio,Xaml,我想根据同一行中“MarID”listview项的第一个字符的值,将“Bedrag”Textblock项的文本颜色更改为绿色或红色 当marID的第一个字符等于1时,文本颜色应为绿色,当它等于2时,文本颜色应为红色 我的.xaml文件中有以下代码: <ListView x:Name="lstVerrichtingen" HorizontalAlignment="Left" Height="344" Margin="35,28,0,0" VerticalAlignment="Top" Wid
<ListView x:Name="lstVerrichtingen" HorizontalAlignment="Left" Height="344" Margin="35,28,0,0" VerticalAlignment="Top" Width="934">
<ListView.View>
<GridView>
<GridViewColumn x:Name="gridcolumnVerrichtingID" Header="VerrichtingID" Width="100" DisplayMemberBinding="{Binding VerrichtingID}"/>
<GridViewColumn x:Name="gridcolumnDatum" Header="Datum" Width="100" DisplayMemberBinding="{Binding Datum, StringFormat={}\{0:dd/MM/yyyy\}}"/>
<GridViewColumn x:Name="gridcolumnMarID" Header="MarID" Width="75" DisplayMemberBinding="{Binding MarId}"/>
<GridViewColumn x:Name="gridcolumnBedrag" Header="Bedrag" Width="100" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Bedrag, StringFormat={}{0:0.00}}" TextAlignment="Right" Foreground=""/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="gridcolumnVanAan" Header="VanAan" Width="100" DisplayMemberBinding="{Binding VanAan}"/>
<GridViewColumn x:Name="gridcolumnRekeningNummer" Header="Rekeningnummer" Width="100" DisplayMemberBinding="{Binding RekeningNummer}"/>
</GridView>
</ListView.View>
</ListView>
我怎样才能解决这个问题?谢谢。您可以使用DataTrigger检查MarId绑定值 编辑:-我注意到您现在想要检查MarId的起始字符。这可能由转换器完成。但是,通过创建返回第一个字符的属性,可以实现相同的效果
public char FirstIDChar
{
get
{
return MarID.ToString().First();
}
}
以及您的xaml:
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding FirstIDChar}" Value="1">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding FirstIDChar}" Value="2">
<Setter Property="Foreground" Value="Green"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
您可以使用datatrigger来检查值是否等于1或2,但需要检查marID的第一个字符,因为它们是100或1000。例如:marID=232,marID=1237。@WhatTheCode,对不起。我没有注意到。我已经用一个变通方法更新了答案。