HomeSearch

WPF DatePicker Example: SelectedDate

Add the WPF DatePicker control. Access SelectedDateChanged and SelectedDate.

DatePicker.

Often in user interfaces a date selection is needed. This allows us to provide a scheduling function. In WPF, we can use the DatePicker to present a calendar pop-up window. And any day (of any month) can be selected.

Example.

Please create a new WPF project and drag a DatePicker control to the window. Next, we add a useful event handler to our control: SelectedDateChanged. Type "SelectedDateChanged" and Visual Studio will insert the C# event handler.

In SelectedDateChanged,

we access the sender object (the DatePicker) and its SelectedDate property. This property returns a nullable DateTime instance. When null, no date is selected.PropertyNullable DateTime

And: If the nullable DateTime is not null, we use it in the same way as any other DateTime struct.

DateTime

Tip: We invoke ToShortDateString on the returned DateTime—it contains no time information, only a date.

Example markup: XAML <Window x:Class="WpfApplication12.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <DatePicker HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" SelectedDateChanged="DatePicker_SelectedDateChanged"/> </Grid> </Window> Example code: C# using System; using System.Windows; using System.Windows.Controls; namespace WpfApplication12 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { // ... Get DatePicker reference. var picker = sender as DatePicker; // ... Get nullable DateTime from SelectedDate. DateTime? date = picker.SelectedDate; if (date == null) { // ... A null object. this.Title = "No date"; } else { // ... No need to display the time. this.Title = date.Value.ToShortDateString(); } } } }

Calendar.

There exists a Calendar control, which is the same as DatePicker but involves no pop-up window. For more complex forms with many controls, a DatePicker can save space and improve the interface.Calendar

Summary.

There are many ways to accept input dates—a program could even parse a TextBox. Sometimes, a simpler user interface has advantages. It may be more consistent. But in cases where a date selection is needed, a DatePicker is worth consideration.TextBox
Home
Dot Net Perls
© 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com.