我想为在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>
答案 0 :(得分:32)
我遇到了一些试图做到这一点的麻烦,结果是这样的
<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>
可能有其他选择,但是一旦我开始工作,我就停止了寻找:)
答案 1 :(得分:2)
我还没有对此进行过测试,因此可能需要进行一些调整,但是您需要触发该值来设置背景颜色。
<DataTemplate.Triggers>
<Trigger Property="IsInternalNote" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</DataTemplate.Triggers>