C# 基于IList中项目中的数据的WPF数据绑定和样式设置
我有一个绑定到项目列表的列表框(对于arguement,假设它有一个字符串和两个输入并完成的日期) 如果Done DateTime为!=DateTime.MinValue 编辑: 我应该做一个转换器吗?并根据DateTime的值将DateTime转换为笔刷 这是我最好的选择吗?或者有一个简单的Xaml片段可以使用吗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 {
[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这是可行的,但它会影响我窗口中的每个列表框--我如何才能使它仅适用于单个列表框?