C# 基于IList中项目中的数据的WPF数据绑定和样式设置

C# 基于IList中项目中的数据的WPF数据绑定和样式设置,c#,.net,wpf,data-binding,C#,.net,Wpf,Data Binding,我有一个绑定到项目列表的列表框(对于arguement,假设它有一个字符串和两个输入并完成的日期) 如果Done DateTime为!=DateTime.MinValue 编辑: 我应该做一个转换器吗?并根据DateTime的值将DateTime转换为笔刷 这是我最好的选择吗?或者有一个简单的Xaml片段可以使用吗 [ValueConversion(typeof(DateTime), typeof(Brush))] class MyConverter : IValueConverter {

我有一个绑定到项目列表的列表框(对于arguement,假设它有一个字符串和两个输入并完成的日期)

如果Done DateTime为!=DateTime.MinValue

编辑:

我应该做一个转换器吗?并根据DateTime的值将DateTime转换为笔刷

这是我最好的选择吗?或者有一个简单的Xaml片段可以使用吗

[ValueConversion(typeof(DateTime), typeof(Brush))]
class MyConverter : IValueConverter
{
    ...
}

ValueConverter
可以工作。另一个选项是使用
ListBoxItem
样式的
DataTrigger
。也许是这样的:

<Style x:Name="MinDateTimeListBoxStyle" TargetType="ListBoxItem">
    <Style.Triggers>
        <Setter Property="Background" Value="Gray" />
        <DataTrigger Binding="{Binding Path=Done}"
            Value="{x:Static sys:DateTime.MinValue}">
            <Setter Property="Background" Value="White" />
        </DataTrigger>
    </Style.Triggers>
</Style>

ValueConverter
可以工作。另一个选项是使用
ListBoxItem
样式的
DataTrigger
。也许是这样的:

<Style x:Name="MinDateTimeListBoxStyle" TargetType="ListBoxItem">
    <Style.Triggers>
        <Setter Property="Background" Value="Gray" />
        <DataTrigger Binding="{Binding Path=Done}"
            Value="{x:Static sys:DateTime.MinValue}">
            <Setter Property="Background" Value="White" />
        </DataTrigger>
    </Style.Triggers>
</Style>

我只是发布了同样的解决方案,然后删除了它,因为我看到你在这方面击败了我。。。我更新了你的:d这很有效,但它会影响我窗口中的每个列表框--我如何才能使其仅适用于单个列表框?我只是发布了相同的解决方案,然后删除了它,因为我看到你在这方面比我强。。。我选择了你的:d这是可行的,但它会影响我窗口中的每个列表框--我如何才能使它仅适用于单个列表框?