Articles in this section
Category / Section

How to bind Schedule commands in Xamarin.Forms (SfSchedule)

1 min read

You can bind the ViewModel commands to CellDoubleTappedCommand and VisibleDatesChangedCommand of SfSchedule in Xamarin.Forms.

STEP 1:  Create a ViewModel class and define a VisibleDatesChangedCommand and CellDoubleTappedCommand.

public class SchedulerViewModel : INotifyPropertyChanged
{
 
        public SchedulerViewModel()
        {
            this.VisibleDatesChangedCommand = new Command<VisibleDatesChangedEventArgs>(OnVisibleDatesChanged);
            this.CellDoubleTappedCommand = new Command<CellTappedEventArgs>(OnCellDoubleTapped);
        }
 
        /// <summary>
        /// Cell Double Tapped event
        /// </summary>
        /// <param name="obj"></param>
        private void OnCellDoubleTapped(CellTappedEventArgs obj)
        {
            App.Current.MainPage.DisplayAlert("CellDoubleTapped", "Event Triggered", "ok");
        }
 
        /// <summary>
        /// Visible Dates changed Event
        /// </summary>
        /// <param name="obj"></param>
        private void OnVisibleDatesChanged(VisibleDatesChangedEventArgs obj)
        {
            App.Current.MainPage.DisplayAlert("VisibleDateChanged", "Event Triggered", "ok");
 
        }
 
        /// <summary>
        /// Visible Dates changed Command.
        /// </summary>
        public ICommand VisibleDatesChangedCommand { get; set; }
 
        /// <summary>
        /// CellDoubleTapped command.
        /// </summary>
        public ICommand CellDoubleTappedCommand { get; set; }
 
        /// <summary>
        /// Occurs when property changed.
        /// </summary>
        public event PropertyChangedEventHandler PropertyChanged;
 
        /// <summary>
        /// Invoke method when property changed.
        /// </summary>
        /// <param name="propertyName">property name</param>
        private void RaiseOnPropertyChanged(string propertyName)
        {
            this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
}

STEP 2: Bind the VisibleDatesChangedCommand  and CellDoubleTappedCommand  of ViewModel to the CellDoubleTappedCommand and VisibleDatesChangedCommand  in SfSchedule.

<schedule:SfSchedule x:Name="Schedule"
                                 VisibleDatesChangedCommand="{Binding VisibleDatesChangedCommand}"
                                 CellDoubleTappedCommand="{Binding CellDoubleTappedCommand}"
                                 ScheduleView="MonthView">
            <schedule:SfSchedule.BindingContext>
                <local:SchedulerViewModel/>
            </schedule:SfSchedule.BindingContext>
</schedule:SfSchedule>

Output

command

View sample in GitHub

 

 

 

 

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied