概要
この記事では、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:



コメント