syncfusion-wpf-datetimepicker
SKILL.md
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 (
DateTimetwo-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
| Class | Namespace | Assembly |
|---|---|---|
DateTimeEdit |
Syncfusion.Windows.Shared |
Syncfusion.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
DateTimevalue - Two-way MVVM binding with
DateTimeChangedevent - Predefined
Patternquick reference MinDateTime/MaxDateTimebasics- 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
OnFocusBehaviorandAutoForwardingfocus control
Formatting & Culture
📄 Read: references/formatting-and-culture.md
- All 11 predefined
Patternvalues CustomPatternwithPattern="CustomPattern"DateTimeFormatwithDateTimeFormatInfoCultureInfofor locale-specific formattingPatternChanged/CustomPatternChangedevents
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 nullAbbreviatedMonthNames/ShortestDayNamesPopupDelay,IsButtonPopUpEnabledDropDownButtonTemplatecustom UI- Custom calendar and clock (SfDateSelector / SfTimeSelector)
TimeStepIntervalfor clock
Date Restrictions & Null Values
📄 Read: references/date-restrictions.md
MinDateTime/MaxDateTime— prevent out-of-range selectionBlackoutDates— block specific date rangesDisableDateSelection— month/year onlyIsReadOnly— prevent all user editsNullValue/IsEmptyDateEnabled/ShowMaskOnNullValueNoneDateTextwatermark
Appearance
📄 Read: references/appearance.md
Foreground,Background,SelectionBrushFocusedBorderBrushFlowDirectionRTL- Repeat button background and margins
- SfSkinManager themes list
Localization
📄 Read: references/localization.md
CurrentUICulturesetup- 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
| Scenario | Properties / Approach |
|---|---|
| Two-way date binding | DateTime="{Binding SelectedDate, Mode=TwoWay}" |
| Show calendar + clock | DropDownView="Combined" Pattern="FullDateTime" |
| Free-form text editing | CanEdit="True" |
| Date-only range restriction | MinDateTime="..." MaxDateTime="..." |
| Allow null / clear value | IsEmptyDateEnabled="True" NullValue="{x:Null}" ShowMaskOnNullValue="False" |
| Watermark when null | Add NoneDateText="Select a date" alongside null value properties |
| Custom date display | Pattern="CustomPattern" CustomPattern="dd-MMM-yyyy" |
| Culture-aware formatting | CultureInfo="fr-FR" Pattern="FullDateTime" |
| Read-only input | IsReadOnly="True" |
| RTL layout | FlowDirection="RightToLeft" |
| Apply theme | SfSkinManager.SetVisualStyle(dte, VisualStyles.FluentLight) |
Key Properties
| Property | Type | Default | Description |
|---|---|---|---|
DateTime |
DateTime |
DateTime.Now |
Selected date/time value |
Pattern |
DateTimePattern |
ShortDate |
Display format pattern |
CustomPattern |
string |
null |
Custom format string (requires Pattern="CustomPattern") |
CultureInfo |
CultureInfo |
System culture | Locale for date formatting |
CanEdit |
bool |
false |
Enable free-form text editing |
MinDateTime |
DateTime |
DateTime.MinValue |
Minimum selectable date |
MaxDateTime |
DateTime |
DateTime.MaxValue |
Maximum selectable date |
DropDownView |
DropDownViews |
Calendar |
Popup content: Calendar/Clock/Combined |
IsEmptyDateEnabled |
bool |
false |
Allow null date value |
NullValue |
DateTime? |
null |
Value when date is cleared |
NoneDateText |
string |
"" |
Watermark text when value is null |
ShowMaskOnNullValue |
bool |
true |
Show mask vs watermark when null |
IsReadOnly |
bool |
false |
Prevent user edits |
IsVisibleRepeatButton |
bool |
false |
Show up/down spinner buttons |
EnableMouseWheelEdit |
bool |
true |
Allow mouse wheel to change value |
Weekly Installs
4
Repository
syncfusion/wpf-…s-skillsFirst Seen
Today
Security Audits
Installed on
opencode4
gemini-cli4
deepagents4
antigravity4
claude-code4
github-copilot4