'宣言 Public Property SelectionType As SelectionType
public SelectionType SelectionType {get; set;}
デフォルト選択タイプは Extended です。複数不連続日付の範囲を選択することを許可します。日付が選択される時に SelectedDatesChanged イベントを発生して、SelectedDate や SelectedDates のプロパティが更新されます。Extended または Range などの複数選択タイプを使用する時に、ユーザーが選択できる CalendarItem インスタンスの最大数を制御するために MaxSelectedDates を使用できます。
Imports Infragistics.Windows.Editors Imports Infragistics.Windows.Editors.Events Imports Infragistics.Windows.Controls Private Sub InitializeCalendar(ByVal calendar As XamMonthCalendar) ' the selectiontype determines how dates may be selected ' Range is a special type of multiple selection that ignores ' the control key state and therefore doesn't allow ' discontigous sections via the ui calendar.SelectionType = SelectionType.Range ' use MaxSelectedDates to restrict the number of dates ' that can be selected calendar.MaxSelectedDates = 7 ' you can add individual dates to the SelectedDates but ' when selecting a range, the AddRange method is more ' convenient ' 'calendar.SelectedDates.Add(new DateTime(2008, 10, 14)) 'calendar.SelectedDates.Add(new DateTime(2008, 10, 15)) 'calendar.SelectedDates.Add(new DateTime(2008, 10, 16)) calendar.SelectedDates.AddRange(New DateTime(2008, 10, 14), New DateTime(2008, 10, 16), True) ' make the last day in the selection active calendar.ActiveDate = New DateTime(2008, 10, 16) AddHandler calendar.SelectedDatesChanged, AddressOf xamMonthCalendar1_SelectedDatesChanged End Sub Private Sub xamMonthCalendar1_SelectedDatesChanged(ByVal sender As Object, ByVal e As SelectedDatesChangedEventArgs) Dim sb As New Text.StringBuilder() sb.Append("Added:") For i As Integer = 0 To e.AddedDates.Count - 1 If (i > 0) Then sb.Append(", ") sb.Append(e.AddedDates(i).ToString("d")) Next i sb.AppendLine() sb.Append("Removed:") For i As Integer = 0 To e.RemovedDates.Count - 1 If (i > 0) Then sb.Append(", ") sb.Append(e.RemovedDates(i).ToString("d")) Next i sb.AppendLine() System.Diagnostics.Debug.WriteLine(sb.ToString(), "SelectedDatesChanged") End Sub
using Infragistics.Windows.Editors; using Infragistics.Windows.Editors.Events; using Infragistics.Windows.Controls; private void InitializeCalendar(XamMonthCalendar calendar) { // the selectiontype determines how dates may be selected // Range is a special type of multiple selection that ignores // the control key state and therefore doesn't allow // discontigous sections via the ui calendar.SelectionType = SelectionType.Range; // use MaxSelectedDates to restrict the number of dates // that can be selected calendar.MaxSelectedDates = 7; // you can add individual dates to the SelectedDates but // when selecting a range, the AddRange method is more // convenient // //calendar.SelectedDates.Add(new DateTime(2008, 10, 14)); //calendar.SelectedDates.Add(new DateTime(2008, 10, 15)); //calendar.SelectedDates.Add(new DateTime(2008, 10, 16)); calendar.SelectedDates.AddRange(new DateTime(2008, 10, 14), new DateTime(2008, 10, 16), true); // make the last day in the selection active calendar.ActiveDate = new DateTime(2008, 10, 16); calendar.SelectedDatesChanged += xamMonthCalendar1_SelectedDatesChanged; } void xamMonthCalendar1_SelectedDatesChanged(object sender, SelectedDatesChangedEventArgs e) { StringBuilder sb = new StringBuilder(); sb.Append("Added:"); for(int i = 0; i < e.AddedDates.Count; i++) { if (i > 0) sb.Append(", "); sb.Append(e.AddedDates[i].ToString("d")); } sb.AppendLine(); sb.Append("Removed:"); for (int i = 0; i < e.RemovedDates.Count; i++) { if (i > 0) sb.Append(", "); sb.Append(e.RemovedDates[i].ToString("d")); } sb.AppendLine(); System.Diagnostics.Debug.WriteLine(sb.ToString(), "SelectedDatesChanged"); }