public void SyncRefreshLayout(CDVDataTarget requestor, CDVDocumentCell data) { if (data.UserData is DocCalenarData) { data.Item = FormatCalendarLayout(requestor, (DocCalenarData)data.UserData); data.RefreshLayout = false; } }
public void AsyncRequestData(CDVDataTarget requestor, CDVDocumentCell data) { //FetchCalendarDataSync(requestor, data); AsyncTask1 at = new AsyncTask1(FetchCalendarDataSync); at.BeginInvoke(requestor, data, null, null); }
private void FetchCalendarDataSync(CDVDataTarget requestor, CDVDocumentCell data) { int i_year, i_month; string[] sa = data.Key.Split('-'); if (sa.Length != 2 || !int.TryParse(sa[0], out i_year) || !int.TryParse(sa[1], out i_month)) { return; } if (i_month < 2) { data.PrevKey = string.Format("{0}-{1}", i_year - 1, 12); } else { data.PrevKey = string.Format("{0}-{1}", i_year, i_month - 1); } if (i_month > 11) { data.NextKey = string.Format("{0}-{1}", i_year + 1, 1); } else { data.NextKey = string.Format("{0}-{1}", i_year, i_month + 1); } TResultCalendar rc = new TResultCalendar(calLocation, i_year, i_month); DocCalenarData docdata = new DocCalenarData(); docdata.Calendar = rc; docdata.Month = i_month; docdata.Year = i_year; CDVPara para = FormatCalendarLayout(requestor, docdata); data.UserData = docdata; data.Item = para; AsyncTask2 at2 = new AsyncTask2(requestor.OnCDVDataAvailable); while (!this.IsHandleCreated) { System.Threading.Thread.Sleep(100); } this.Invoke(at2, data); // then return calculated data //requestor.OnCDVDataAvailable(data); }