You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据所选日期筛选ListView中处于预订时段内的条目?

解决日期范围过滤ListView条目的问题

看起来你现在的核心问题是日期判断逻辑写错了,而且没搞清楚怎么把筛选逻辑和ListView绑定结合起来。我来一步步帮你搞定:

首先先修正你当前代码里的几个明显问题:

  • 你的SDate属性存在字段不匹配的错误:get返回sDate,但set赋值给startDate,这会导致属性值混乱,建议改成更简洁不易出错的自动属性:
    public DateTime SDate { get; set; }
    public DateTime EDate { get; set; }
    
  • 你写的Date = (SDate - EDate) = payment.Date.Value完全不符合逻辑:SDate - EDate得到的是时间间隔(TimeSpan类型),既不能和日期直接比较,也不能这么赋值。

接下来是正确的日期范围判断和ListView绑定逻辑:

1. 单个预订的日期范围判断

我们需要筛选出payment.Date.Value落在**SDate到EDate之间(包含两端)**的条目。这里要先判断payment.Date是否有值,避免空引用异常:

// 判断单个payment是否在所选日期范围内
bool isPaymentInRange = payment.Date.HasValue 
                        && payment.Date.Value >= SDate 
                        && payment.Date.Value <= EDate;

如果你的需求是只比较日期部分(忽略时分秒)——比如不管用户选的是当天几点,只要预订日期是同一天就算符合条件,就用Date属性截断时间:

bool isPaymentInRange = payment.Date.HasValue 
                        && payment.Date.Value.Date >= SDate.Date 
                        && payment.Date.Value.Date <= EDate.Date;

2. 过滤列表并绑定到ListView

假设你有一个存储所有预订数据的列表(比如List<Payment> allPayments),先过滤出符合条件的条目,再绑定到ListView:

// 过滤符合日期范围的预订
var filteredPayments = allPayments.Where(payment => 
    payment.Date.HasValue 
    && payment.Date.Value >= SDate 
    && payment.Date.Value <= EDate).ToList();

// 绑定到ListView(以WinForms为例,其他UI框架逻辑类似)
yourListView.DataSource = filteredPayments;
yourListView.Refresh(); // 刷新界面显示

3. 触发过滤的时机

你需要在用户修改日期选择器的日期时,自动重新执行过滤逻辑。比如给日期选择器的ValueChanged事件绑定处理方法:

// 假设你的日期选择器是datePickerStart和datePickerEnd
datePickerStart.ValueChanged += (sender, e) => RefreshListView();
datePickerEnd.ValueChanged += (sender, e) => RefreshListView();

// 封装刷新逻辑的方法,方便复用
private void RefreshListView()
{
    var filteredPayments = allPayments.Where(payment => 
        payment.Date.HasValue 
        && payment.Date.Value >= SDate 
        && payment.Date.Value <= EDate).ToList();
    
    yourListView.DataSource = filteredPayments;
    yourListView.Refresh();
}

这样当用户选择新的开始或结束日期时,ListView就会自动更新为符合日期范围的条目了。

内容的提问来源于stack exchange,提问作者KalleP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:02:22