C# WPF ListView仅为一个单元格使用codebehind改变前景

C# WPF ListView仅为一个单元格使用codebehind改变前景,c#,wpf,listview,code-behind,C#,Wpf,Listview,Code Behind,嗨,我有一个列表视图,有两列,“文件夹”和“状态”。如果“状态”成员的数据为“锁定”,如何将其前景更改为绿色,如果其数据为“解锁”,如何将其前景更改为红色 范例 Folder | Status ----------+-------------------------------------------- xxxx | Locked <--To be appeared as green yyyyy | Unlocked <-

嗨,我有一个
列表视图
,有两列,“文件夹”和“状态”。如果“状态”成员的数据为“锁定”,如何将其前景更改为绿色,如果其数据为“解锁”,如何将其前景更改为红色

范例

Folder    |       Status
----------+--------------------------------------------
xxxx      |       Locked  <--To be appeared as green
yyyyy     |       Unlocked <-- To be appeared as red
文件夹|状态
----------+--------------------------------------------

xxxx | Locked您可以对特定的CellTemplate使用触发器

<DataTemplate> 
 <TextBlock Text="{Binding Path=Status}"> 
 <TextBlock.Style> 
   <Style TargetType="TextBlock"> 
     <Setter Property="Foreground" Value="Red"/> 
     <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=Locked}" Value="True"> 
          <Setter Property="Foreground" Value="Green"/> 
        </DataTrigger> 
       <DataTrigger Binding="{Binding Path=Locked}" Value="False"> 
          <Setter Property="Foreground" Value="Red"/> 
        </DataTrigger> 
      </Style.Triggers> 
     </Style> 
   </TextBlock.Style> 
  </TextBlock> 
<DataTemplate>

更新

我刚才看到您使用命令式代码要求解决方案。因此,你可以忽略我的答案,这是一个去极化的解决方案


但是请注意,您试图实现的目标不应该在代码隐藏中实现,因为它不符合MVVM原则

请注意,他没有说他正在使用MVVM模式。WPF本打算与MVVM一起使用,但无论如何都不一定要使用。@reviouser-我同意你的看法。我只是想提到良好习惯,您应该从第二列中删除DisplayMemberBinding,并为TextBlock的文本属性{Binding Path=FolderStatus}添加以下内容
<DataTemplate> 
 <TextBlock Text="{Binding Path=Status}"> 
 <TextBlock.Style> 
   <Style TargetType="TextBlock"> 
     <Setter Property="Foreground" Value="Red"/> 
     <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=Locked}" Value="True"> 
          <Setter Property="Foreground" Value="Green"/> 
        </DataTrigger> 
       <DataTrigger Binding="{Binding Path=Locked}" Value="False"> 
          <Setter Property="Foreground" Value="Red"/> 
        </DataTrigger> 
      </Style.Triggers> 
     </Style> 
   </TextBlock.Style> 
  </TextBlock> 
<DataTemplate>