xamSchedule には、 xamDayView、 xamMonthView、 xamScheduleView をはじめとする多数のビュー コントロールが含まれています。これらのコントロールはそれぞれエンドユーザーにひとつ以上のスケジュール アクティビティを選択するための機能を提供します。
xamSchedule ビュー コントロールのひとつでアクティビティをクリックすると、以下のアクションが実行されます。
アクティビティが適切に編集されていない場合には、フォーカスはビュー コントロールに設定されます。
まだアクティブでない場合、アクティビティが関連付けられている ResourceCalendar がアクティブになります。これはビュー コントロールの ActiveCalendar プロパティを設定して、その ActiveCalendarChanged イベントを起動します。
ResourceCalendar が CalendarGroup にある場合、グループの SelectedCalendar プロパティは ResourceCalendar に設定されます。
異なる ResourceCalendars に関連付けられているすべての現在選択されているアクティビティは、 SelectedActivities コレクションから削除されます。
[Ctrl]キーが押される場合:
SelectedActivities コレクションにすでにアクティビティがある場合には削除されます。
SelectedActivities コレクションにアクティビティがまだない場合には追加されます。
SelectedActivitiesChanged イベントが発生します。
[Ctrl]キーが押されていない場合:
同じ ResourceCalendars に関連付けられているすべての他のアクティビティは、SelectedActivities コレクションから削除されます。
SelectedActivities コレクションにアクティビティがまだない場合には追加されます。
上記の 4、5a および 5b で SelectedActivities コレクションに変更が行われた場合には、SelectedActivitiesChanged イベントが発生します。
それぞれの CalendarGroups で SelectedCalendar に関連付けられているすべてのアクティビティは、その他の ResourceCalendars に関連付けられているアクティビティよりも太字で表示されます。
SelectedActivities コレクションのすべてのアクティビティは、その他のアクティビティよりも太字で表示され、アクティビティのリサイズが許可される場合にはリサイズ ハンドルを表示します。
注: SelectedActivities コレクション、ActiveCalendar プロパティおよび CalendarGroup の SelectedCalendar プロパティをコードで設定できます。この場合のコーラーの責任は、意味を持たせるためにこれらのプロパティを同期することです。たとえば、アクティビティを選択するためには、コーラーはその他の ResourceCalendars からアクティビティの SelectedActivities コレクションをクリアして、ActiveCalendar プロパティを適切に設定する必要があります。
以下の例は、SelectedActivities コレクションの変更をリッスンする方法を示します。
Visual Basic の場合:
dayView.SelectedActivitiesChanged += _
New EventHandler(Of SelectedActivitiesChangedEventArgs) _
(dayView_SelectedActivitiesChanged)
Private Sub dayView_SelectedActivitiesChanged(sender As Object, _
e As SelectedActivitiesChangedEventArgs)
For Each activity As var In dayView.SelectedActivities
' ここで開発者は、activity.Id のようなすべての ActivityBase
' 情報と activity.DataItem プロパティの実際のアクティビティ
' を持っています。
Next
End Sub
C# の場合:
dayView.SelectedActivitiesChanged +=
new EventHandler<SelectedActivitiesChangedEventArgs>
(dayView_SelectedActivitiesChanged);
void dayView_SelectedActivitiesChanged(object sender,
SelectedActivitiesChangedEventArgs e)
{
foreach (var activity in dayView.SelectedActivities)
{
// ここで開発者は、activity.Id のようなすべての ActivityBase
// 情報と activity.DataItem プロパティの実際のアクティビティ
// を持っています。
}
}