Back to Devexpress

ViewBase.Tap Event

mobilecontrols-devexpress-dot-xamarinforms-dot-scheduler-dot-viewbase.md

latest4.4 KB
Original Source

ViewBase.Tap Event

Fires when users tap on the scheduler view.

Namespace : DevExpress.XamarinForms.Scheduler

Assembly : DevExpress.XamarinForms.Scheduler.dll

NuGet Package : DevExpress.XamarinForms.Scheduler

Declaration

csharp
public event SchedulerGestureEventHandler Tap

Event Data

The Tap event's data class is SchedulerGestureEventArgs. The following properties provide information specific to this event:

PropertyDescription
AppointmentInfoReturns information about an appointment with which an user interacts.
IntervalInfoReturns information about a time interval with which a user interacts.
LocationReturns coordinates of the screen point to which user tapped.

Example

This example demonstrates how to display AppointmentEditPage to edit general appointment, pattern, occurrence, or to add a new appointment when a user taps on the scheduler day view:

csharp
const string EditPatternAction = "Edit pattern";
const string EditOccurrenceAction = "Edit occurrence";
const string EditNormalAction = "Edit";

async void Handle_OnTap(object sender, SchedulerGestureEventArgs e) {
    if (e.AppointmentInfo != null) {
        string selectedAction = await DisplaySelectAppointmentEditActionSheet(e.AppointmentInfo.Appointment);
        switch (selectedAction) {
            case EditPatternAction:
                PushEditAppointmentPage(storage.GetPattern(e.AppointmentInfo.Appointment));
                break;
            case EditOccurrenceAction:
            case EditNormalAction:
                PushEditAppointmentPage(e.AppointmentInfo.Appointment);
                break;
            default:
                break;
        }
    } else {
        if (e.IntervalInfo != null) { PushNewAppointmentPage(e.IntervalInfo); }
    }
}

async void PushEditAppointmentPage(AppointmentItem target) {
    var page = new AppointmentEditPage(target, storage);
    await Navigation.PushAsync(page);
}
async void PushNewAppointmentPage(IntervalInfo info) {
    var page = new AppointmentEditPage(info.Start, info.End, info.AllDay, storage);
    await Navigation.PushAsync(page);
}

async Task<String> DisplaySelectAppointmentEditActionSheet(AppointmentItem target) {
    string[] actions = null;
    string deleteAction = null;
    switch (target.Type) {
        case AppointmentType.Normal:
            actions = new string[] { EditNormalAction };
            break;
        default:
            actions = new string[] { EditPatternAction, EditOccurrenceAction };
            break;
    }
    return await this.DisplayActionSheet(null, "Cancel", null, actions);
}
xml
<dxs:DayView Tap="Handle_OnTap">
    <dxsch:DayView.DataStorage>
        <dxsch:SchedulerDataStorage x:Name="storage">
            <!-- ... -->
        </dxsch:SchedulerDataStorage>
    </dxsch:DayView.DataStorage>
</dxs:DayView>

The following table contains classes and members the example uses:

|

Symbol

|

Description

| | --- | --- | |

ViewBase.Tap

|

Fires when users tap on the scheduler view.

| |

SchedulerDataStorage.GetPattern(AppointmentItem)

|

Returns a pattern of the specified occurrence or exception.

| |

AppointmentEditPage

|

The page that allows users to add new appointments and edit existing appointments.

|

See Also

ViewBase Class

ViewBase Members

DevExpress.XamarinForms.Scheduler Namespace