c# - Refresh IEnumerable to update month in Calendar -


i have created own calendar use of itemscontrol. make functionally need calendar display month that's selected in combobox.

right displays current month , lists items per date in listbox, doesn't update when change month or year in combobox.

viewmodel

private void refreshcalendar() {     if (currentyearitem == 0) return;     if (currentmonthitem == null) return;      int year = (int)currentyearitem;     int month = months.indexof(currentmonthitem) +1 ;      datetime targetdate = new datetime(year,month,1);      days= buildcalendar(targetdate); }  public ienumerable<day> days { get; set; }  public ienumerable<day> buildcalendar(datetime targetdate) {     datetime d = new datetime(targetdate.year, targetdate.month, 1);     int offset = dayofweeknumber(d.dayofweek);     if (offset != 1) d = d.adddays(-offset);      (int box = 1; box <= 42; box++)     {         var day = new day { date = d, enabled = true, istargetmonth = targetdate.month == d.month };          day.istoday = d == datetime.today;         d = d.adddays(1);          var viewsource = new collectionviewsource         {             source = scenelist         };          viewsource.filter += new filtereventhandler((o, e) =>         {            e.accepted = (e.item scene).date == day.date.tostring();         });          day.scenes = viewsource.view;          yield return day;     } } 

how refresh ienumerable each time value of combobox changes or there way of achieving this?

implement inotifypropertychanged interface. here example:

class classtest : inotifypropertychanged {     private ienumerable<day> mylist;     public ienumerable<day> mylist     {         { return mylist; }         set         {             if (value != mylist)             {                 mylist= value;                 onpropertychanged("mylist");             }         }     }      public event propertychangedeventhandler propertychanged;      protected void onpropertychanged(string propertyname)     {         propertychangedeventhandler handler = propertychanged;         if (handler != null)             handler(this, new propertychangedeventargs(propertyname));     } } 

Comments