Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改WPF ItemTemplate的背景色_C#_Wpf_Xaml_Listbox - Fatal编程技术网

C# 更改WPF 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

我必须根据布尔值更改列表框的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>

如果用户删除了一个项目,我想用灰色背景显示他。

精度:列表框绑定到一个字典,其中包含一个布尔值“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。