C# 更改WPF ItemTemplate的背景色
我必须根据布尔值更改列表框的ItemTemplate的背景色。 这是我的列表框:C# 更改WPF ItemTemplate的背景色,c#,wpf,xaml,listbox,C#,Wpf,Xaml,Listbox,我必须根据布尔值更改列表框的ItemTemplate的背景色。 这是我的列表框: <ListBox Name="itemListBox" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="itemListBox_SelectionChanged"> <ListBox.ItemTemplate> <DataTempla
<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>
如果用户删除了一个项目,我想用灰色背景显示他。精度:列表框绑定到一个字典,其中包含一个布尔值“IsDeleted”。 对不起,英语太差了。
谢谢您可以将
ItemContainerStyle
与DataTrigger
一起使用:
<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
属性的类正确实现接口。您可以使用带有数据触发器的ItemContainerStyle
:
<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
属性的类正确实现接口。“如果用户删除项目”,这在代码中是什么意思?该项是否具有指示其已被删除的标志?列表框绑定到一个字典,其中包含布尔值“IsDeleted”“如果用户删除项”,这在代码中是什么意思?该项目是否有一个标志,表明它已被删除?列表框绑定到一个字典,其中包含一个布尔值“IsDeleted”,非常感谢!是的,INotifyPropertyChanged已实现。非常感谢!是,已实现INotifyPropertyChanged。