如何在WPF中基于bool属性设置背景颜色

Rus*_*uss 23 .net data-binding wpf styles c#-3.0

我想为在WPF中的listview内部数据绑定的GridViewColumn设置背景颜色.我不知道怎么问这个问题对于WPF来说还是比较新的,否则我不会打扰你们所有人.

我想根据数据绑定对象中的bool标志更改整行的背景颜色.

在这种情况下,我有一个"CaseDetail"对象,当有内部注释"IsInternalNote"时,我想要改变行的颜色.

我怎样才能在WPF中解决这个问题?

我现在拥有的(非常简单),它不会改变颜色.

<ListView ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True"  >
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Date, StringFormat=MMM dd\, yyyy h:mm tt}" Header="Date" Width="Auto" />
                    <GridViewColumn DisplayMemberBinding="{Binding SubmittedBy}" Header="Submitted By" Width="Auto" />
                    <GridViewColumn Width="Auto" Header="Description" x:Name="colDesc">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>                              
                                <ScrollViewer MaxHeight="80" Width="300">
                                    <StackPanel Orientation="Vertical">
                                        <TextBlock Text="{Binding Description}"  TextWrapping="Wrap"   />
                                        <TextBlock Text="{Binding File.FileName}" TextWrapping="Wrap"  />
                                    </StackPanel>
                                </ScrollViewer>                             
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>                    
                </GridView>
            </ListView.View>
        </ListView>
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 34

我遇到了一些试图做到这一点的麻烦,最后就这样了

<ListBox ...>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Border x:Name="BGBorder">
         <!-- --> 
      </Border>
      <DataTemplate.Triggers>
        <DataTrigger 
          Binding="{Binding Path=DataContext.IsAborted, RelativeSource={RelativeSource TemplatedParent}}" 
          Value="True">
          <Setter Property="Background" TargetName="BGBorder" Value="Red">
          </Setter>
        </DataTrigger>
      </DataTemplate.Triggers>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

可能有其他选择,但一旦我开始工作,我就不再寻找:)