Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据同一行中另一个listviewitem的值,更改WPF中listviewitem的文本颜色_C#_Wpf_Visual Studio_Xaml - Fatal编程技术网

C# 根据同一行中另一个listviewitem的值,更改WPF中listviewitem的文本颜色

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

我想根据同一行中“MarID”listview项的第一个字符的值,将“Bedrag”Textblock项的文本颜色更改为绿色或红色

当marID的第一个字符等于1时,文本颜色应为绿色,当它等于2时,文本颜色应为红色

我的.xaml文件中有以下代码:

<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,对不起。我没有注意到。我已经用一个变通方法更新了答案。