gpt4 book ai didi

WPF DataTrigger/Setter 与 DateTime 比较

转载 作者:行者123 更新时间:2023-12-04 21:44:40 25 4
gpt4 key购买 nike

我只是想知道是否可以与 WPF 进行 DATETIME 比较,理想情况下我想根据它与当前日期的相关性来为我的数据网格着色。红色代表过去的文件,绿色代表 future 。感谢您的帮助!

<dg:DataGrid Name="files_datagrid" DataContext="{Binding Source={StaticResource filelist_provider}}"         
ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False" Grid.Row="1">
<Style TargetType="{x:Type dg:DataGridRow}"> <Style.Triggers>
<DataTrigger Binding="{Binding Path=[filedate]}" Value=">TODAY">
<Setter Property="Background" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>

最佳答案

我认为你最好使用 Value Converter.

像这样:

[ValueConversion(typeof(DateTime), typeof(Brush))]
public class DateTimeToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var dateTime = (DateTime)value;
if (dateTime.Date < DateTime.Now)
return Brushes.Red;
if (dateTime.Date > DateTime.Now)
return Brushes.Green;

return Brushes.Black;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

如果您愿意,可以将颜色移动为参数以使其更通用。

然后像这样申请:

<Style TargetType="{x:Type dg:DataGridRow}">
<Setter Property="Background"
Value="{Binding Path=fileDate,
Converter={StaticResource dateTimeToBrushConverter}}" />
</Style>

在您的资源中创建 dateTimeToBrushConverter 的位置。

关于WPF DataTrigger/Setter 与 DateTime 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5538174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com