Как установить цвет фона на основе свойства bool в WPF
Я хочу установить цвет backgroun для GridViewColumn, который привязан к базе данных в списке в WPF. Я не уверен, как задать этот вопрос, который был довольно новым для 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>
Ответы
Ответ 1
Я столкнулся с несколькими неприятностями, пытаясь сделать это, так получилось
<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>
Могут быть альтернативы, но как только я работал, я перестала смотреть:)
Ответ 2
Я еще не тестировал это, поэтому может потребоваться некоторые настройки, но вам нужно будет отключить значение, чтобы установить цвет фона.
<DataTemplate.Triggers>
<Trigger Property="IsInternalNote" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</DataTemplate.Triggers>