概要
この記事では、WPFのCalendarコントロールにおいて、SelectedDatesプロパティを使用して複数の日付を選択し、それらの日付を取得する方法について説明します。
構文
SelectedDatesプロパティの使用方法は以下の通りです。XAMLコードで示します。
複数の日付の選択と取得をできるようにするには、SelectionMode に”MultipleRange” を指定します。
また、任意の日付を選択状態にするには、<Calendar.SelectedDates> の下に <System:DateTime>を置いて、日付を指定します。
<Calendar Name="calendar" SelectionMode="MultipleRange"> <Calendar.SelectedDates> <System:DateTime>2023-10-19</System:DateTime> <System:DateTime>2023-10-20</System:DateTime> </Calendar.SelectedDates> </Calendar>
使用例
以下は、XAMLとC#のコード例です。
XAMLではSelectedDateプロパティを使用して 2023年10月19日、2023年10月20日、2023年10月30日を選択します。また、Buttonコントロールを配置して、クリック時に selectedDateButton_Click イベントを発生させています。
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfSample" xmlns:System="clr-namespace:System;assembly=System.Runtime" x:Class="WpfSample.MainWindow" mc:Ignorable="d" Title="MainWindow" Height="300" Width="400"> <StackPanel> <Calendar x:Name="calendar" SelectionMode="MultipleRange"> <Calendar.SelectedDates> <System:DateTime>2023-10-19</System:DateTime> <System:DateTime>2023-10-20</System:DateTime> <System:DateTime>2023-10-30</System:DateTime> </Calendar.SelectedDates> </Calendar> <Button x:Name="selectedDateButton" Content="選択日付を取得" Click="selectedDateButton_Click" /> </StackPanel> </Window>
C#のコードでは selectedDateButton_Click を実装しています。
ここでは、現在選択されている日付(SelectedDates)を foreachですべて取得して連結し、メッセージボックスに表示します。
private void selectedDateButton_Click(object sender, RoutedEventArgs e) { var msg = string.Empty; // SelectedDatesの値を取得 foreach (DateTime selectedDate in calendar.SelectedDates) { msg += selectedDate.ToString("yyyy-MM-dd") + "\r\n"; } // SelectedDateの値を取得 MessageBox.Show("選択した日付: \r\n" + msg); }
Please follow and like us:
コメント