- Home
- Forum
- Xamarin.Forms
- How to refresh the calendar items from MVVM
How to refresh the calendar items from MVVM
Hallo,
how can I refresh the calendar from MVVM after the items changed. I trigger an OnAppearing event, when I move to a calendar page, where the calendar is shown. The code loading the new data in the CalendarEventCollection, but the calendar is not refreshing. The page where the calendar is shown, was already loaded at startup and the events are showing fine.
The same code I call at start page the first time the page loads and fills the calendar with the events.
IN THE VIEWMODEL:
public CalendarEventCollection CalendarInlineEvents { get; set; } = new CalendarEventCollection();
private async void GetCalendarData()
{
var calendarData = await App.Database.SelectTrackListAsync();
int count = calendarData.Count;
if (count > 0 )
{
CalendarInlineEvents.Clear();
foreach (var _calendarData in calendarData)
{
CalendarInlineEvents.Add(new CalendarInlineEvent() {Subject = _calendarData.EventName, StartTime = _calendarData.EventDateTimeStart, EndTime = _calendarData.EventDateTimeStart, Color = Color.Blue });
}
}
}
Thanks,
Markus
SaiGanesh Sakthivel
Hallo SaiGanesh ,
thank you for your reply, I was reading this article, I was hopping for a solution, without a button click
Thanks,
Makrus
|
<calendar:SfCalendar x:Name="calendar"
DataSource="{Binding Appointments}"
MonthChangedCommand="{Binding OnMonthChanged}"> |
|
public ICommand OnMonthChanged { get; set; }
public ViewModel() {
OnMonthChanged = new Command<MonthChangedEventArgs>(MonthChanged);
}
private void MonthChanged(MonthChangedEventArgs obj) {
var calender = obj.Calendar;
calender.Refresh();
} |
please refer to the tested sample in the following link for your reference.
SaiGanesh Sakthivel
Hi SaiGanesh ,
thanks, I get it working now. I
private void MonthChanged(MonthChangedEventArgs obj)
{
GetCalendarData(); // clear & add CalendarEventCollection before refresh calenevents
var calender = obj.Calendar;
calender.Refresh();
}
Thanks :)
SaiGanesh Sakthivel
- 5 Replies
- 2 Participants
- Marked answer
-
MA Markus
- Aug 22, 2021 11:05 AM UTC
- Aug 25, 2021 06:26 AM UTC