/ / WPF DatePicker, um nur verfügbare Daten anzuzeigen - c #, wpf, datepicker

WPF DatePicker zum Anzeigen nur verfügbarer Daten - c #, wpf, datepicker

Ich habe einen DatePicker, damit der Benutzer Datum auswählen kann.

Ich möchte, dass der Benutzer nur das verfügbare Datum auswählt. und die verfügbaren Daten sind in a gespeichert List

Bisher habe ich das:

<DatePicker x:Name="DatePicker"
SelectedDate="{Binding SearchEngineCompassLogView.DateSearch,
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
DataContext="{StaticResource CompassLogView}">
</DatePicker>

Antworten:

1 für die Antwort № 1

Sie können verwenden BlackoutDates Eigenschaft aber in dieser Lösung müssen Sie angeben DisplayDateStart und DisplayDateEnd.

Das BlackoutDates ist eine Sammlung von Daten, die nicht zur Auswahl stehen (msdn).

Beispiel:

 <DatePicker x:Name="datePicker"
Loaded="datePicker_Loaded"
DisplayDateStart="2000/01/01"
DisplayDateEnd="2050/01/01"
/>

Geladener Event-Handler:

private void datePicker_Loaded(object sender, RoutedEventArgs e)
{
DatePicker picker = sender as DatePicker;

if (picker.DisplayDateStart == null || picker.DisplayDateEnd == null) return;

picker.BlackoutDates.Clear();

DateTime start = picker.DisplayDateStart.Value;
DateTime end = picker.DisplayDateEnd.Value;

while (start <= end)
{
if (!availableDates.Contains(start))
{
picker.BlackoutDates.Add(new CalendarDateRange(start, start));
}
start = start.AddDays(1);
}
}

Sammlung mit verfügbaren Terminen:

List<DateTime> availableDates = new List<DateTime>
{
new DateTime(2013, 03, 01),
new DateTime(2013, 03, 02),
new DateTime(2013, 03, 03),
new DateTime(2013, 03, 31),
new DateTime(2013, 02, 01),
new DateTime(2013, 02, 02),
new DateTime(2013, 05, 01),
new DateTime(2013, 05, 02)
};