gpt4 book ai didi

WPF Datepicker 只能选择日期列表

转载 作者:行者123 更新时间:2023-12-04 22:22:11 29 4
gpt4 key购买 nike

我不确定这是否可行,但是否可以在 wpf 日期选择器中只选择一个日期列表?

我需要确保使用只能从一定数量的日期中进行选择。我可以使用下拉列表来做到这一点,但使用日期选择器会更好。

有任何想法吗?

最佳答案

DatePicker 具有以下属性来控制哪些日期应该是可选的:

DisplayDateStart :包含在 Calendar 弹出窗口中的第一个日期。
DisplayDateEnd :包含在 Calendar 弹出窗口中的最后日期。

因此,如果您有一个包含允许日期的列表,您可以将 DisplayDateStart 设置为列表中的第一项,将 DisplayDateEnd 设置为列表中的最后一项。

这将阻止用户选择该范围之外的日期。

要处理允许的日期列表包含间隙的情况,您可以使用 BlackoutDates 属性使日期范围不可选。

因此,要将列表中不存在的日期添加为涂黑,您可以执行以下操作。

只有列表中的日期显示在日历弹出窗口中,不在列表中的日期被涂黑,因此无法选择。

var dates = new List<DateTime>
{
new DateTime(2013, 1, 5),
new DateTime(2013, 1, 6),
new DateTime(2013, 1, 7),
new DateTime(2013, 1, 8),
new DateTime(2013, 1, 15),
new DateTime(2013, 1, 16),
new DateTime(2013, 1, 28),
new DateTime(2013, 1, 29),
new DateTime(2013, 2, 9),
new DateTime(2013, 2, 12),
new DateTime(2013, 2, 13),
new DateTime(2013, 2, 17),
new DateTime(2013, 2, 18)
};

var firstDate = dates.First();
var lastDate = dates.Last();
var dateCounter = firstDate;

foreach (var d in dates.Skip(1))
{
if (d.AddDays(-1).Date != dateCounter.Date)
{
dtp.BlackoutDates.Add(
new CalendarDateRange(dateCounter.AddDays(1), d.AddDays(-1)));
}

dateCounter = d;
}

dtp.DisplayDateStart = firstDate;
dtp.DisplayDateEnd = lastDate;

如果允许的日期相距很远,这可能对用户不太友好,因为将 90% 的日期涂黑会很烦人。在这种情况下, ComboBox 可能会更好。

关于WPF Datepicker 只能选择日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14932596/

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