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
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();
} |
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 :)