gpt4 book ai didi

c# - 更改 WPF ItemTemplate 的背景颜色

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:57 26 4
gpt4 key购买 nike

我必须根据 bool 值更改 ListBox 的 ItemTemplate 的背景颜色。这是我的列表框:

<ListBox Name="itemListBox" 
ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectionChanged="itemListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Width="200">
<TextBlock FontSize="10"
FontWeight="Bold"
VerticalAlignment="Center"
Text="{Binding Path=Value.DocID}" />
<TextBlock FontSize="10"
VerticalAlignment="Center"
TextWrapping="Wrap"
Text="{Binding Path=Value.Serial}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

如果用户删除了一个项目,我想用灰色背景显示他。
Precision :ListBox 绑定(bind)到一个 Dictionnary,它包含一个 bool 值“IsDeleted”。抱歉英语不好。
谢谢

最佳答案

您可以将 ItemContainerStyleDataTrigger 一起使用:

<ListBox Name="itemListBox" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="itemListBox_SelectionChanged">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Value.IsDeleted}" Value="True">
<Setter Property="Background" Value="Gray" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Width="200">
<TextBlock FontSize="10" FontWeight="Bold" VerticalAlignment="Center" Text="{Binding Path=Value.DocID}" />
<TextBlock FontSize="10" VerticalAlignment="Center" TextWrapping="Wrap" Text="{Binding Path=Value.Serial}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

确保具有 IsDeleted 属性的类实现了 INotifyPropertyChanged如果您打算动态设置属性并希望背景相应地更新,则可以正确连接。

关于c# - 更改 WPF ItemTemplate 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42539318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com