Wpf 可重用的ListView,其中项目基于值着色

Wpf 可重用的ListView,其中项目基于值着色,wpf,listview,Wpf,Listview,我想构建一个ListView控件,在该控件中指定两种颜色,一种用于“启用”项,另一种用于“未启用”项。ListView将绑定到一个ObservableCollection,其中StringBool是一个类,具有一个字符串(列表项文本)和要启用/禁用的bool 我已经开始做一个UserControl,但这感觉太过分了。我无法理解如何扩展ListView并附加能够在另一个窗口的XAML中使用的属性 我应该从哪里开始寻找?我从以下示例中获得了最佳效果:(您可以使用绑定到bool属性并设置ListVie

我想构建一个ListView控件,在该控件中指定两种颜色,一种用于“启用”项,另一种用于“未启用”项。ListView将绑定到一个ObservableCollection,其中StringBool是一个类,具有一个字符串(列表项文本)和要启用/禁用的bool

我已经开始做一个UserControl,但这感觉太过分了。我无法理解如何扩展ListView并附加能够在另一个窗口的XAML中使用的属性


我应该从哪里开始寻找?我从以下示例中获得了最佳效果:(

您可以使用绑定到
bool
属性并设置
ListViewItem
容器的一个或多个属性的
DataTrigger
定义一个
ItemContainerStyle
,例如:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Foreground" Value="Green" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsEnabled}" Value="False">
                    <Setter Property="Foreground" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>


您想更改什么颜色?我想更改ListItem的textcolor。这就是ListViewItem的前景?好的,但是如何使红色和绿色可设置,使其成为可用于其他区域的新控件?理想情况下,我希望这些颜色独立于每个实例,可从何处设置?可以例如,使用
DynamicResource
标记扩展来引用
样式中的画笔:Value=“{DynamicResource EnabledBrush}”。然后,您可以在要更改颜色的范围内使用该键定义一个
笔刷
。我希望这是一个新控件,我可以在其他XAML中使用。新控件…?为什么要创建一个新控件来更改某些项目的前景?因为我可以在同一窗口上多次使用此控件,并使其使用不同的颜色每个项目的nt颜色。我只需要让控制级别设置颜色。