4

ユーザーが日付を選択できるように、DatePicker があります。

ユーザーが利用可能な日付のみを選択することを望みます。利用可能な日付はList

これまでのところ、私はこれを持っています:

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

1 に答える 1

1

プロパティを使用できますが、このソリューションではおよびBlackoutDatesを指定する必要があります。DisplayDateStartDisplayDateEnd

BlackoutDates、選択できない日付のコレクションです ( msdn )。

例:

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

読み込まれたイベント ハンドラ:

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);
    }
}

利用可能な日付のコレクション:

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)
};
于 2013-03-03T16:06:19.813 に答える