Category / Section
How to get the start and end date of the selected range in Xamarin.Forms Calendar (SfCalendar)
1 min read
You can get the StartDate and EndDate of the selected range by using the SelectedRange property of SfCalendar.
C#
Declared SelectedRange in ViewModel of type Calendar SelectedRange
public class CalendarViewmodel { public SelectionRange SelectedRange { get; set; } public CalendarViewmodel() { } }
XAML
Bind the SelectionRange with ViewModel SelectedRange property and set the mode as TwoWay.
<ContentPage.BindingContext> <local:CalendarViewmodel x:Name="viewModel"/> </ContentPage.BindingContext> <ContentPage.Content> <Grid> <calendar:SfCalendar x:Name="calendar" SelectionMode="RangeSelection" SelectedRange="{Binding SelectedRange ,Mode=TwoWay}" /> </Grid> </ContentPage.Content> <ContentPage.Behaviors> <local:CalendarBehavior/> </ContentPage.Behaviors> </ContentPage>
C#
In SelectionChanged event, you can get the StartDate and EndDate of the selected range by using the SelectedRange property.
public class CalendarBehavior : Behavior<ContentPage> { SfCalendar calendar; CalendarViewmodel viewModel; private DateTime startDate; private DateTime endDate; protected override void OnAttachedTo(ContentPage bindable) { base.OnAttachedTo(bindable); this.calendar = bindable.Content.FindByName<SfCalendar>("calendar"); this.viewModel = bindable.Content.FindByName<CalendarViewmodel>("viewModel"); this.WireEvents(); } private void WireEvents() { this.calendar.SelectionChanged += Calendar_SelectionChanged; } private void Calendar_SelectionChanged(object sender, Syncfusion.SfCalendar.XForms.SelectionChangedEventArgs e) { if (this.calendar.SelectedRange != null) { startDate = viewModel.SelectedRange.StartDate; endDate = viewModel.SelectedRange.EndDate; App.Current.MainPage.DisplayAlert("StartDate" + " " + ":"+" "+ startDate.ToString(), "EndDate" + " " + ":"+" " + endDate.ToString(),"OK"); } } protected override void OnDetachingFrom(ContentPage bindable) { base.OnDetachingFrom(bindable); this.UnWireEvents(); } private void UnWireEvents() { this.calendar.SelectionChanged += Calendar_SelectionChanged; } }