mcpField
S
syncfusion-wpf-datetimepicker

syncfusion-wpf-datetimepicker

github.com/syncfusionDesign & UI5156 installsUpdated 1w ago
Repository

About syncfusion-wpf-datetimepicker

A skill for implementing Syncfusion’s DateTimeEdit control in WPF applications. It covers date and time entry, formatting, validation, dropdowns, and MVVM binding.

Key features

  1. 01Mask and free-form date entry
  2. 02Calendar, clock, or combined popup
  3. 03Date range and blackout restrictions
  4. 04Custom and culture-based formatting
  5. 05MVVM binding and null values

Use cases

  1. 01Add a date/time field to a WPF form
  2. 02Bind a selected date to a ViewModel
  3. 03Restrict dates to a range or blackout periods
  4. 04Localize date display and dropdown labels

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-datetimepicker

After installing, type/syncfusion-wpf-datetimepickerin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
appearance.md
date-restrictions.md
datetime-editing.md
dropdown-popup.md
formatting-and-culture.md
getting-started.md
localization.md

Details

From the project README

Implementing DateTimeEdit (WPF)

An enhanced date-time input control with mask editing, calendar/clock dropdown, date range restriction, formatting, and MVVM binding support.

When to Use This Skill

Use this skill when the user needs to:

  • Add a date/time picker input field to a WPF application
  • Bind a selected date to a ViewModel property (DateTime two-way binding)
  • Format the displayed date/time (predefined patterns or custom patterns)
  • Restrict selectable dates with min/max range or blackout dates
  • Enable inline editing (mask mode or free-form text editing)
  • Show a calendar, clock, or combined dropdown picker
  • Display watermark text when no date is selected
  • Handle null date values
  • Apply locale-specific date formats via CultureInfo
  • Localize dropdown button labels (Today/None)

Component Overview

ClassNamespaceAssembly
DateTimeEditSyncfusion.Windows.SharedSyncfusion.Shared.WPF

XAML Namespace:

xmlns:syncfusion="http://schemas.syncfusion.com/wpf"

NuGet:

Install-Package Syncfusion.Shared.WPF

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Assembly setup and XAML namespace
  • Add via designer, XAML, or C#
  • Setting DateTime value
  • Two-way MVVM binding with DateTimeChanged event
  • Predefined Pattern quick reference
  • MinDateTime / MaxDateTime basics
  • SfSkinManager theme setup
DateTime Editing

📄 Read: references/datetime-editing.md

  • Mask editing (default) — field-by-field input with auto-validation
  • Keyboard navigation between date/time fields
  • Free-form text editing (CanEdit="True")
  • Mouse wheel value change (EnableMouseWheelEdit)
  • Up/down repeat buttons (IsVisibleRepeatButton, IsEnabledRepeatButton)
  • Custom repeat button UI templates
  • Alpha key month navigation (EnableAlphaKeyNavigation)
  • BackSpace/Delete key editing
  • OnFocusBehavior and AutoForwarding focus control
Formatting & Culture

📄 Read: references/formatting-and-culture.md

  • All 11 predefined Pattern values
  • CustomPattern with Pattern="CustomPattern"
  • DateTimeFormat with DateTimeFormatInfo
  • CultureInfo for locale-specific formatting
  • PatternChanged / CustomPatternChanged events
Dropdown Popup

📄 Read: references/dropdown-popup.md

  • DropDownView: Calendar / Clock / Combined
  • Keyboard shortcuts (Alt+Down, F4)
  • TodayButtonAction (Date vs DateTime)
  • IsEmptyDateEnabled — None button / reset to null
  • AbbreviatedMonthNames / ShortestDayNames
  • PopupDelay, IsButtonPopUpEnabled
  • DropDownButtonTemplate custom UI
  • Custom calendar and clock (SfDateSelector / SfTimeSelector)
  • TimeStepInterval for clock
Date Restrictions & Null Values

📄 Read: references/date-restrictions.md

  • MinDateTime / MaxDateTime — prevent out-of-range selection
  • BlackoutDates — block specific date ranges
  • DisableDateSelection — month/year only
  • IsReadOnly — prevent all user edits
  • NullValue / IsEmptyDateEnabled / ShowMaskOnNullValue
  • NoneDateText watermark
Appearance

📄 Read: references/appearance.md

  • Foreground, Background, SelectionBrush
  • FocusedBorderBrush
  • FlowDirection RTL
  • Repeat button background and margins
  • SfSkinManager themes list
Localization

📄 Read: references/localization.md

  • CurrentUICulture setup
  • Resource file naming: Syncfusion.Shared.Wpf.{culture}.resx
  • Name/Value pairs for Today/None button labels
  • French culture example

Quick Start Example

<!-- MainWindow.xaml -->
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
    <Window.DataContext>
        <local:ViewModel/>
    </Window.DataContext>
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <syncfusion:DateTimeEdit DateTime="{Binding SelectedDate, Mode=TwoWay}"
                                 Pattern="ShortDate"
                                 MinDateTime="01/01/2020"
                                 MaxDateTime="12/31/2030"
                                 Height="25" Width="200"
                                 Name="dateTimeEdit"/>
    </StackPanel>
</Window>
// ViewModel.cs
public class ViewModel : NotificationObject
{
    private DateTime _selectedDate = DateTime.Now;
    public DateTime SelectedDate
    {
        get => _selectedDate;
        set { _selectedDate = value; RaisePropertyChanged(nameof(SelectedDate)); }
    }
}

Common Patterns

ScenarioProperties / Approach
Two-way date bindingDateTime="{Binding SelectedDate, Mode=TwoWay}"
Show calendar + clockDropDownView="Combined" Pattern="FullDateTime"
Free-form text editingCanEdit="True"
Date-only range restrictionMinDateTime="..." MaxDateTime="..."
Allow null / clear valueIsEmptyDateEnabled="True" NullValue="{x:Null}" ShowMaskOnNullValue="False"
Watermark when nullAdd NoneDateText="Select a date" alongside null value properties
Custom date displayPattern="CustomPattern" CustomPattern="dd-MMM-yyyy"
Culture-aware formattingCultureInfo="fr-FR" Pattern="FullDateTime"
Read-only inputIsReadOnly="True"
RTL layoutFlowDirection="RightToLeft"
Apply themeSfSkinManager.SetVisualStyle(dte, VisualStyles.FluentLight)

Key Properties

PropertyTypeDefaultDescription
DateTimeDateTimeDateTime.NowSelected date/time value
PatternDateTimePatternShortDateDisplay format pattern
CustomPatternstringnullCustom format string (requires Pattern="CustomPattern")
CultureInfoCultureInfoSystem cultureLocale for date formatting
CanEditboolfalseEnable free-form text editing
MinDateTimeDateTimeDateTime.MinValueMinimum selectable date
MaxDateTimeDateTimeDateTime.MaxValueMaximum selectable date
DropDownViewDropDownViewsCalendarPopup content: Calendar/Clock/Combined
IsEmptyDateEnabledboolfalseAllow null date value
NullValueDateTime?nullValue when date is cleared
NoneDateTextstring""Watermark text when value is null
ShowMaskOnNullValuebooltrueShow mask vs watermark when null
IsReadOnlyboolfalsePrevent user edits
IsVisibleRepeatButtonboolfalseShow up/down spinner buttons
EnableMouseWheelEditbooltrueAllow mouse wheel to change value

Comments

Markdown supported