Wpf 基于属性检查我的ListView进度条单元格背景颜色

Wpf 基于属性检查我的ListView进度条单元格背景颜色,wpf,data-binding,styles,progress-bar,Wpf,Data Binding,Styles,Progress Bar,因此,我的ListView中有一个单元格进度条。参考资料: 编辑: 我的复选框已绑定到我的属性中: 经过一点工作,以下是解决方案: <Style x:Key="CustomProgressBar" TargetType="ProgressBar"> <Style.Triggers> <DataTrigger Value="True" Binding="{Binding Path=IsChecked}"> <Sette

因此,我的ListView中有一个单元格进度条。参考资料:

编辑:

我的复选框已绑定到我的属性中:


经过一点工作,以下是解决方案:

<Style x:Key="CustomProgressBar" TargetType="ProgressBar">
   <Style.Triggers>
      <DataTrigger Value="True" Binding="{Binding Path=IsChecked}">
         <Setter Property="Background" Value="Red"/>
      </DataTrigger>
      <DataTrigger Value="False" Binding="{Binding Path=IsChecked}">
          <Setter Property="Background" Value="Yellow"/>
      </DataTrigger>
    </Style.Triggers>
    <Setter Property="Template" >
        <Setter.Value>
            <ControlTemplate TargetType="ProgressBar">
                <Border BorderBrush="{DynamicResource ProgressBorderBrushColor}" BorderThickness="0" Background="{DynamicResource ProgressBackgroundColor}" CornerRadius="0" Padding="0">
                    <Grid x:Name="PART_Track">
                        <Rectangle x:Name="PART_Indicator" HorizontalAlignment="Left">
                            <Rectangle.Style>
                                <Style TargetType="Rectangle">
                                    <Setter Property="Fill" Value="{Binding}"/>
                                </Style>
                            </Rectangle.Style>
                        </Rectangle>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

如果将复选框的IsCheckedProperty绑定到viewmodel中的布尔值,则可以将datatrigger设置为绑定到该属性,即:checbox->isChecked->viewmodel.isChecked->DatTriggerן我不知道如何在datatrigger中实现它,我可以有一个简单的代码示例吗?在我的复选框中,我有一个:isChecked={Binding Path=IsChecked}我不明白。如果你有一个列表视图,有几个项目,你应该有几个复选框?在这种情况下,你有一个viewmodel来处理你有这个IsChecked属性的单个listviewItem吗?是的,请看我的编辑,目前这只适用于红色,当IsChecked为true时
<Style x:Key="CustomProgressBar" TargetType="ProgressBar">
        <Setter Property="Template" >
            <Setter.Value>
                <ControlTemplate TargetType="ProgressBar">
                    <Border BorderBrush="{DynamicResource ProgressBorderBrushColor}" BorderThickness="0" Background="{DynamicResource ProgressBackgroundColor}" CornerRadius="0" Padding="0">
                        <Grid x:Name="PART_Track">
                            <Rectangle x:Name="PART_Indicator" HorizontalAlignment="Left">
                                <Rectangle.Style>
                                    <Style TargetType="Rectangle">
                                        <Setter Property="Fill" Value="{DynamicResource ProgressBarFillColor}"/>
                                        <Style.Triggers>
                                            <DataTrigger Value="100" Binding="{Binding Path=Value, RelativeSource={RelativeSource AncestorType=ProgressBar}}">
                                                <Setter Property="Fill" Value="{DynamicResource ProgressBarFillCompleteColor}"/>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </Rectangle.Style>
                            </Rectangle>
                        </Grid>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
   <DataTrigger Value="False" Binding="{Binding Path=IsChecked, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=CheckBox}}">
       <Setter Property="Fill" Value="Red"/>
   </DataTrigger>
IsChecked="{Binding Path=IsChecked}"
<DataTrigger Value="True" Binding="{Binding Path=IsChecked}">
       <Setter Property="Fill" Value="Red"/>
</DataTrigger>

<DataTrigger Value="False" Binding="{Binding Path=IsChecked}">
       <Setter Property="Fill" Value="Yellow"/>
</DataTrigger>

public bool IsChecked
{
   get { return _isChecked; }
   set
   {
       _isChecked = value;
       OnPropertyChanged();
   }
}
<Style x:Key="CustomProgressBar" TargetType="ProgressBar">
   <Style.Triggers>
      <DataTrigger Value="True" Binding="{Binding Path=IsChecked}">
         <Setter Property="Background" Value="Red"/>
      </DataTrigger>
      <DataTrigger Value="False" Binding="{Binding Path=IsChecked}">
          <Setter Property="Background" Value="Yellow"/>
      </DataTrigger>
    </Style.Triggers>
    <Setter Property="Template" >
        <Setter.Value>
            <ControlTemplate TargetType="ProgressBar">
                <Border BorderBrush="{DynamicResource ProgressBorderBrushColor}" BorderThickness="0" Background="{DynamicResource ProgressBackgroundColor}" CornerRadius="0" Padding="0">
                    <Grid x:Name="PART_Track">
                        <Rectangle x:Name="PART_Indicator" HorizontalAlignment="Left">
                            <Rectangle.Style>
                                <Style TargetType="Rectangle">
                                    <Setter Property="Fill" Value="{Binding}"/>
                                </Style>
                            </Rectangle.Style>
                        </Rectangle>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>